Course Code: openmp
Duration: 14 hours
Prerequisites:
  • Zrozumienie systemów HPC
  • Doświadczenie w programowaniu równoległym

Publiczność

  • Inżynierowie oprogramowania
Overview:

OpenMP (Open Multi-Processing) to interfejs API do programowania wieloprocesowego w pamięci współdzielonej. Dzięki OpenMP programiści mogą tworzyć aplikacje równoległe dla platform od komputerów stacjonarnych po systemy bez pamięci współdzielonej.

Szkolenie na żywo prowadzone przez instruktora (na miejscu lub zdalnie) jest przeznaczone dla inżynierów oprogramowania, którzy chcą tworzyć aplikacje równoległe przy użyciu OpenMP.

Pod koniec tego szkolenia uczestnicy będą mogli

  • Zrozumieć i używać programowania równoległego z Fortranem w OpenMP.
  • Obliczać fraktale równolegle w celu renderowania wielu pikseli i znaków.
  • Implementować programowanie wektorowe z rozszerzeniami SIMD dla systemów HPC.
  • Dodawać bloki równoległe do określania równoległości pamięci współdzielonej.

Format kursu

  • Interaktywny wykład i dyskusja.
  • Wiele ćwiczeń i praktyki.
  • Praktyczna implementacja w środowisku laboratoryjnym na żywo.

Opcje dostosowywania kursu

  • Aby poprosić o spersonalizowane szkolenie dla tego kursu, skontaktuj się z nami.
Course Outline:

Wprowadzenie

Wielowątkowość Programming

  • Składnia i konstrukcje
  • Klauzule i sekcje

Wsparcie dla odciążania

  • Dyrektywy i dane docelowe
  • Klauzule if, device i map

Bezpieczeństwo i współdzielenie wątków

  • Atomowość
  • Konstrukcje, blokady i dyrektywy
  • Klauzule współdzielone

Przygotowanie środowiska programistycznego

  • Instalowanie i konfigurowanie OpenMP
  • Instalacja i konfiguracja VMWare
  • Konfigurowanie HPC za pomocą VMWare

Równoległe Programming w OpenMP

  • Tworzenie przykładowego kodu hello world i demonstracja
  • Konstrukcje współdzielenia pracy
  • Praca z pętlami for
  • Korzystanie z równoległości sekcji
  • Korzystanie z fraktali
  • Dodawanie wektorów

Wektor Programming i rozszerzenia SIMD

  • Wektoryzacja pętli
  • Dodawanie adnotacji do funkcji zdefiniowanych przez użytkownika
  • Używanie funkcji obsługujących adnotacje SIMD
  • Generowanie funkcji wektorowej
  • Rejestrowanie wartości zwracanych wektora

Fortran w OpenMP

  • Konstrukcje współdzielone
  • Konstrukcje synchronizujące
  • Używanie klauzul atrybutów zakresu danych i innych klauzul
  • Praca z biblioteką OpenMP-Runtime

Bloki równoległe

  • Określanie liczby wątków
  • Wykonywanie równoległych bloków instrukcji
  • Rozróżnianie uruchomionych wątków w bloku równoległym
  • Używanie dyrektyw krytycznych omp

Podsumowanie i wnioski

Sites Published:

United Arab Emirates - Parallel Programming with OpenMP

Qatar - Parallel Programming with OpenMP

Egypt - Parallel Programming with OpenMP

Saudi Arabia - Parallel Programming with OpenMP

South Africa - Parallel Programming with OpenMP

Brasil - Parallel Programming with OpenMP

Canada - Parallel Programming with OpenMP

中国 - Parallel Programming with OpenMP

香港 - Parallel Programming with OpenMP

澳門 - Parallel Programming with OpenMP

台灣 - Parallel Programming with OpenMP

USA - Parallel Programming with OpenMP

Österreich - Parallel Programming with OpenMP

Schweiz - Parallel Programming with OpenMP

Deutschland - Parallel Programming with OpenMP

Czech Republic - Parallel Programming with OpenMP

Denmark - Parallel Programming with OpenMP

Estonia - Parallel Programming with OpenMP

Finland - Parallel Programming with OpenMP

Greece - Parallel Programming with OpenMP

Magyarország - Parallel Programming with OpenMP

Ireland - Parallel Programming with OpenMP

Luxembourg - Parallel Programming with OpenMP

Latvia - Parallel Programming with OpenMP

España - Parallel Programming with OpenMP

Italia - Parallel Programming with OpenMP

Lithuania - Parallel Programming with OpenMP

Nederland - Parallel Programming with OpenMP

Norway - Parallel Programming with OpenMP

Portugal - Parallel Programming with OpenMP

România - Parallel Programming with OpenMP

Sverige - Parallel Programming with OpenMP

Türkiye - Parallel Programming with OpenMP

Malta - Parallel Programming with OpenMP

Belgique - Parallel Programming with OpenMP

France - Parallel Programming with OpenMP

日本 - Parallel Programming with OpenMP

Australia - Parallel Programming with OpenMP

Malaysia - Parallel Programming with OpenMP

New Zealand - Parallel Programming with OpenMP

Philippines - Parallel Programming with OpenMP

Singapore - Parallel Programming with OpenMP

Thailand - Parallel Programming with OpenMP

Vietnam - Parallel Programming with OpenMP

India - Parallel Programming with OpenMP

Argentina - Parallel Programming with OpenMP

Chile - Parallel Programming with OpenMP

Costa Rica - Parallel Programming with OpenMP

Ecuador - Parallel Programming with OpenMP

Guatemala - Parallel Programming with OpenMP

Colombia - Parallel Programming with OpenMP

México - Parallel Programming with OpenMP

Panama - Parallel Programming with OpenMP

Peru - Parallel Programming with OpenMP

Uruguay - Parallel Programming with OpenMP

Venezuela - Parallel Programming with OpenMP

Polska - Parallel Programming with OpenMP

United Kingdom - Parallel Programming with OpenMP

South Korea - Parallel Programming with OpenMP

Pakistan - Parallel Programming with OpenMP

Sri Lanka - Parallel Programming with OpenMP

Bulgaria - Parallel Programming with OpenMP

Bolivia - Parallel Programming with OpenMP

Indonesia - Parallel Programming with OpenMP

Kazakhstan - Parallel Programming with OpenMP

Moldova - Parallel Programming with OpenMP

Morocco - Parallel Programming with OpenMP

Tunisia - Parallel Programming with OpenMP

Kuwait - Parallel Programming with OpenMP

Oman - Parallel Programming with OpenMP

Slovakia - Parallel Programming with OpenMP

Kenya - Parallel Programming with OpenMP

Nigeria - Parallel Programming with OpenMP

Botswana - Parallel Programming with OpenMP

Slovenia - Parallel Programming with OpenMP

Croatia - Parallel Programming with OpenMP

Serbia - Parallel Programming with OpenMP

Bhutan - Parallel Programming with OpenMP

Nepal - Parallel Programming with OpenMP

Uzbekistan - Parallel Programming with OpenMP