Ocena:

Książka jest kompleksowym przewodnikiem po wysokowydajnych obliczeniach (HPC) i programowaniu równoległym, chwalonym za silny nacisk na optymalizację wydajności i dokładne omówienie podstawowych pojęć. Jest uważana za cenne źródło informacji zarówno dla początkujących, jak i doświadczonych programistów, pomimo pewnych krytycznych uwag dotyczących jej organizacji, pisania żargonem i konkretnych ograniczeń treści.
Zalety:⬤ Dogłębne omówienie podstawowych koncepcji HPC, w tym zarządzania pamięcią i optymalizacji wydajności szeregowej.
⬤ Oferuje unikalną dyskusję na temat ccNUMA, która jest często pomijana w innych tekstach.
⬤ Zawiera praktyczne przykłady i pytania do samodzielnej nauki.
⬤ Dobrze skonstruowany pod kątem technik optymalizacji mających zastosowanie w kodzie.
⬤ Materiał jest istotny i aktualny w kontekście nowoczesnego sprzętu.
⬤ Przejrzyste wprowadzenie do technik programowania równoległego, takich jak OpenMP i MPI.
⬤ Gęsty styl pisania z nadmiarem żargonu, który może dezorientować czytelników nieposiadających odpowiedniej wiedzy.
⬤ Kwestie organizacyjne zmuszające czytelników do poruszania się po książce w poszukiwaniu konkretnych tematów.
⬤ Ograniczone omówienie bardziej współczesnych języków programowania, takich jak Python.
⬤ Niektóre przykłady są głównie w języku FORTRAN, co nie każdemu może odpowiadać.
⬤ Problemy z jakością druku, w tym rozpikselowany tekst, które negatywnie wpływają na wrażenia z lektury.
(na podstawie 16 opinii czytelników)
Introduction to High Performance Computing for Scientists and Engineers
Napisana przez ekspertów w dziedzinie obliczeń wysokowydajnych (HPC) książka Introduction to High Performance Computing for Scientists and Engineers stanowi solidne wprowadzenie do obecnej architektury komputerów głównego nurtu, dominujących modeli programowania równoległego i przydatnych strategii optymalizacji dla naukowych HPC. Pracując w naukowym centrum obliczeniowym, autorzy zyskali unikalną perspektywę na wymagania i postawy użytkowników, a także producentów komputerów równoległych.
Tekst najpierw wprowadza architekturę nowoczesnych mikroprocesorów opartych na pamięci podręcznej i omawia ich nieodłączne ograniczenia wydajności, a następnie opisuje ogólne strategie optymalizacji kodu szeregowego na architekturach opartych na pamięci podręcznej. Następnie omówiono architektury komputerów równoległych z pamięcią współdzieloną i rozproszoną oraz najistotniejsze topologie sieciowe. Po omówieniu obliczeń równoległych na poziomie teoretycznym, autorzy pokazują, jak uniknąć lub złagodzić typowe problemy z wydajnością związane z OpenMP. Następnie przedstawiają techniki optymalizacji cache-coherent non-uniform memory access (ccNUMA), analizują programowanie równoległe w pamięci rozproszonej z interfejsem przekazywania komunikatów (MPI) i wyjaśniają, jak pisać wydajny kod MPI. Ostatni rozdział koncentruje się na programowaniu hybrydowym z MPI i OpenMP.
Użytkownicy komputerów o wysokiej wydajności często nie mają pojęcia, jakie czynniki ograniczają czas rozwiązania i czy w ogóle jest sens myśleć o optymalizacji. Ta książka ułatwia intuicyjne zrozumienie ograniczeń wydajności bez polegania na ciężkiej wiedzy informatycznej. Przygotowuje również czytelników do studiowania bardziej zaawansowanej literatury.
Przeczytaj o ostatnim wyróżnieniu autorów: Informatics Europe Curriculum Best Practices Award for Parallelism and Concurrency.