Zaawansowane metody programowania
Kierunek:
Mechanika i Budowa Maszyn
Specjalność:
Modelowanie i optymalizacja układów mechanicznych (MB4)
Rodzaj studiów i semestr: stacjonarne II st., sem. II
Punkty ECTS: 4
Prowadzący:
dr hab. inż. Wacław Kuś prof. Pol. Śl.,
dr inż. Łukasz Turchan
Opis przedmiotu
Celem
przedmiotu jest zapoznanie z paradygmatami programowania strukturalnego,
logicznego, obiektowego, rozproszonego, równoległego i współbieżnego.
Omawiane są zastosowania oraz wady i zalety poszczególnych w/w technik
programowania. Omawiane są dostępne platformy obliczeń równoległych i
rozproszonych m.in. superkomputery, klastry obliczeniowe, rozwiązania
oparte na kartach GPU oraz koprocesorach m.in. Intel PHI.
Program przedmiotu
- wykład: 30 godzin w semestrze
- projekt: 30 godzin w semestrze
Warunki zaliczenia
- Zaliczenie na
ocenę pozytywną ćwiczeń (warunki podaje prowadzący na
zajęciach)
- Egzamin z
wykładu.
OCENA KOŃCOWA: O=0.5E+0.5L
E - ocena z egzaminu (musi być pozytywna)
L - ocena z laboratorium (musi być pozytywna)
Tematyka wykładów
Podstawowe
struktury kontrolne, podprogramy, bloki, wybrane
struktury danych i algorytmy w programowaniu
strukturalnym oraz logicznym. Zaawansowana operacje
wskaźnikowe. Omówienie abstrakcji, hermetyzacji,
polimorfizmu i dziedziczenia.Pojęcia podstawowe z
zakresu współbieżnych, równoległych i rozproszonych
systemów obliczeniowych. Typy najczęściej spotykanych
systemów wieloprocesorowych. Trendy na rynku systemów
równoległych i rozproszonych. Klastry komputerowe,
superkomputery, obliczenia z użyciem kart GPU oraz
koprocesorów Intel PHI. Metody programowania w systemach
równoległych i rozproszonych. Programowanie
wielowątkowe. Programowanie w oparciu o bibliotekę MPI i
OpenMP. Systemy chmurowe. Projektowanie CAD/CAE w
systemach rozproszonych.
Tematyka laboratoriów
Typy danych.
Modyfikatory typów. Operatory, priorytet operatorów.
Instrukcje sterujące i pętle. Typy pochodne i złożone.
Formatowanie wejścia i wyjścia. Klasy, obiekty, cechy
programowania obiektowego. Tworzenie i usuwanie
obiektów. Podstawy programowania w językach drabinkowym
i blokowym. Programowanie z użyciem wątków.
Programowanie w oparciu o bibliotekę MPI i OpenMP.
Wykorzystanie procedur z bibliotek obliczeń
algebraicznych BLAS, LAPACK w obliczeniach numerycznych.
Implementacja wybranych metod numerycznych oraz
testowanie ich skalowalności.
Literatura
- David Griffiths, Dawn
Griffiths, C. Rusz głową!, Helion, 2013
- Jerzy Grębosz,
Symfonia C++ Standard. Programowanie w języku C++
orientowane obiektowo, Helion, 2010
- Sałat Robert, Korpysz
Krzysztof, Obstawski Paweł, Wstęp do programowania
sterowników PLC, Helion, 2009
- Coulouris G.,
Dollimore J., Kindberg T., Systemy rozproszone, podstawy
i projektowanie, WNT, 1998. • Karbowski A,
Niewiadomska-Szynkiewicz E., Obliczenia równoległe i
rozproszone, ofic. Wyd. Pol. Warszawskiej, 2001.
- Królikowski Z.,
Sajkowski M., System operacyjny UNIX dla początkujących
i zaawansowanych, Nakom, 1996.
- Haviland K., Gray D.,
Salama B., Unix Programowanie systemowe, Wyd. RM,
Warszawa, 1999.
- Koenig A., Moo B.E.:
C++. Potęga języka. Od przykładu do przykładu. Helion,
2004
|