Ocena:

Książka stanowi kompleksowe wprowadzenie do obliczeń o wysokiej wydajności (HPC), kładąc nacisk na podstawowe koncepcje, optymalizację wydajności i praktyczne techniki programowania szeregowego i równoległego. Chociaż książka ta została ogólnie dobrze przyjęta, istnieją obawy dotyczące jej organizacji, złożoności, wyboru języków programowania i brakującego pokrycia w nowoczesnych technikach programowania i językach takich jak Python.
Zalety:⬤ Oferuje fundamentalne zrozumienie koncepcji HPC i strategii optymalizacji wydajności.
⬤ Zawiera cenne dyskusje na tematy takie jak ccNUMA i zarządzanie pamięcią.
⬤ Zawiera przydatne ćwiczenia na końcu każdego rozdziału do samodzielnej nauki.
⬤ Dobrze napisana i stanowi dobre wprowadzenie dla początkujących.
⬤ Odpowiednie przykłady i aplikacje omówione pod kątem programowania superkomputerów.
⬤ Aktualny materiał w porównaniu do innych tekstów.
⬤ Zakłada duże doświadczenie w informatyce, co może sprawić, że będzie mniej przystępna dla początkujących.
⬤ Niespójna organizacja; czytelnicy mogą być zmuszeni do poruszania się po książce w celu znalezienia konkretnych tematów.
⬤ Wykorzystuje głównie język FORTRAN w przykładach kodu, co niektórzy czytelnicy uznają za niefortunne.
⬤ Brak omówienia nowoczesnych języków programowania, takich jak Python.
⬤ Niektóre skargi dotyczące jakości druku i problemów z formatami cyfrowymi.
(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 nonuniform 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 niedawnym wyróżnieniu autorów: Informatics Europe Curriculum Best Practices Award for Parallelism and Concurrency.