CMS modules by everest poker.

O ModFEMie

 

Co to jest ModFEM?

 

ModFEM to generyczny, modularny szkielet programowy do równoległych obliczeń naukowych metodą elementów skończonych (MES). Głównym założeniem projektowym jest podział całego szkieletu na moduły, połączone poprzez precyzyjnie zdefiniowane wąskie interfejsy. Na szczycie architektury modularnej znajdują się moduły odpowiedzialne za modelowanie konkretnych zjawisk fizycznych, które dodatkowo mogą być łączone z innymi modułami problemowymi w super-moduły. Struktura modularna pozwala na przenoszenie kodów sekwencyjnych do środowisk równoległych z rozproszona pamięcią. Ponadto modularność wspiera rozwiązywanie problemów ze sprzężeniem wielu różnych zjawisk fizycznych oraz modelowanie wielkoskalowe.

 

Do jakiej kategorii programów zalicza się ModFEM?

 

ModFEM zalicza się do kategorii Wolnego i Otwartego Oprogramowania (WiOO; ang. FLOSS – Free Libre/Open Source Software). Co jest istotne, ModFEM nie jest programem – jest szkieletem programowym pozwalającym automatycznie generować programy z dziedziny równoległych adaptacyjnych symulacji MES, które są potrzebne użytkownikowi. Dzięki modularnej budowie, szkielet aplikacji może być łatwo poszerzany i zmieniany poprzez wprowadzanie nowych elementów, lub dostosowywanie istniejących, takich jak siatki, pola aproksymacji, sformułowania słabe MES itp.

 

Dlaczego ModFEM jest do równoległych symulacji i w jaki sposób to działa?

 

Prawo Moor’a pokazuje jednoznacznie, że moc obliczeniowa komputerów wciąż wzrasta i co więcej – będzie wzrastać nadal. Jednakże, dla aplikacji wymagających dużych mocy obliczeniowych – a do takich należą symulacje – dominującą rolę odgrywają rozproszone środowiska obliczeniowe. ModFEM dostosowuje się do tego trendu, dzięki wprowadzeniu modułów-nakładek dokonujących automatycznego zrównoleglenia kodów sekwencyjnych. Pozwala to na bardzo wydajne wykorzystanie już istniejących kodów symulacyjnych, bez konieczności wgłębiania się w zawiłości programowania równoległego.

 

Jak ModFEM pozwala symulować złożone zjawiska lub wykorzystywać już istniejące programy do symulacji?

 

Modelowanie wieloskalowe i modelowanie wielu zjawisk fizycznych jednocześnie jest wspierane przez podstawową architekturę ModFEM. Każdy moduł problemowy jest odpowiedzialny za symulowanie jednego konkretnego zjawiska fizycznego. Stworzona przez nas koncepcja super-modułów pozwala na łączenie różnych zjawisk fizycznych oraz bezpośrednie przekazywanie informacji między różnymi poziomami skali badanego zjawiska. Ponadto, moduły-fasady pozwalają wykorzystać wcześniej stworzone samodzielne aplikacje do symulacji, nawet jeżeli są one oparte na innym paradygmacie niż Metoda Elementów Skończonych (np.: automaty komórkowe).

 

Czym różni się ModFEM od innych pakietów symulacyjnych?

 

ModFEM posiada szeroki wachlarz możliwości, ale jedna cecha wyróżnia go w sposób szczególny. Posiada on możliwość dostosowanie się do sprzętu na którym jest uruchamiany. Elastyczność i modularność ModFEM dotyczy nie tylko warstwy problemowych (jakie zjawiska program symuluje) i programowej (w jaki sposób dostosować program do swoich potrzeb), ale także warstwy sprzętowej. Pozwala to stworzone programy wykonywać na zwykłych laptopach, komputerach stacjonarnych, serwerach obliczeniowych oraz potężnych klastrach, także z wykorzystaniem akceleratorów, np.: kart graficznych.

 

Skąd się wzięła nazwa ModFEM?

Nazwa ModFEM powstała jako skrót od dwóch określeń, które dość dobrze oddają idee stojące za decyzją o stworzeniu tego pakietu:

  • ModFEM – Modular Finite Elemen Method (Modularna Metoda Elementów Skończonych)

  • ModFEM - Modifiable Finite Element Method (Modyfikowalna Metoda Elementów skończonych)

Nazwa podkreśla główne założenia projektowe, jakimi była modularność struktury w odniesieniu do różnych aspektów oraz łatwość dostosowania pakietu do swoich potrzeb.

 

Dlaczego stworzyliśmy ModFEM – podstawowe informacje.

 

Metody obliczeniowe oparte na siatkach, w tym także metoda elementów skończonych (MES), od lat wspierają efektywną analizę złożonych zjawisk fizycznych, opisywanych za pomocą równań różniczkowych cząstkowych (RRC) w przestrzeniach jedno-, dwu- i trójwymiarowych. Istnieje wiele przypadków, w których wykorzystanie siatek niestrukturalnych, wraz z adaptacją wspartą odpowiednim oszacowaniem błędu, prowadzi do najbardziej skutecznego i efektywnego wykorzystania MES. Niezależnie od faktu, iż wymagania obliczeniowe MES z siatkami adaptacyjnymi mogą być nawet o kilka rzędów wielkości mniejsze, zachowując tę samą dokładność rozwiązania, nadal istnieją zadania o tak dużym stopniu złożoności, że mogą być one rozwiązane tylko z wykorzystaniem równoległych środowisk obliczeniowych. Opracowywanie aplikacji i bibliotek dla metody elementów skończonych w środowiskach równoległych wymaga rozwiązania wielu problemów. Istnieją technologie oraz gotowe biblioteki wspierające tworzenie programów w takich środowiskach, jak również kompletne aplikacje, zarówno komercyjne jak i darmowe (FLOSS) wspierające wykonanie w środowiskach równoległych. W ostatnich latach, w ramach każdej z tych kategorii, pojawiło się wiele propozycji, artykułów i gotowych implementacji odnoszących się do równoległej, adaptacyjnej metody elementów skończonych.

 

Dokładność rozwiązania MES jest implikowana przez wybrane sformułowanie słabe, przestrzeń funkcji aproksymujących oraz przestrzenną (geometryczną) dyskretyzację. Jakość rozwiązania wyraża się posługując się pojęciem błędu rozwiązania. Analiza błędu rozwiązania MES może zostać przeprowadzona w ścisły matematyczny sposób tylko dla pewnej wąskiej grupy problemów liniowych. Większość rzeczywistych zagadnień zawiera różne formy nieliniowości, z których wynikają zasadnicze trudności w matematycznej analizie błędu, w pewnych przypadkach uniemożliwiające nawet jej przeprowadzenie. Dlatego też analiza błędu rozwiązania musi uwzględniać zmiany dyskretyzacji przestrzennej i czasowej w przypadku problemów hiperbolicznych oraz parabolicznych. Wymaga to, by analiza błędu była dokonywana, przynajmniej częściowo, w sposób iteracyjny lub przyrostowy. Prowadzi to do dalszej komplikacji w procesie ustalania rzetelnych technik oszacowania błędu rozwiązania MES.

 

Jedną z najbardziej skutecznych technik zmniejszania błędu (czyli poprawiania dokładności) rozwiązania MES jest adaptacja. Istnieje kilka głównych kierunków stosowania adaptacji w czasie obliczeń MES: h--adaptacja, p--adaptacja, hp--adaptacja oraz r--adaptacja. H--adaptacja zmniejsza błąd poprzez lokalne dodawanie stopni swobody (ang. Degrees Of Freedom; DOFs) co prowadzi do zagęszczania siatki. P--adaptacja zwiększa stopnień wielomianów funkcji aproksymujących, co również prowadzi do zmniejszania błędu w danym elemencie. HP--adaptacja łączy h--adaptacje i p--adaptację. R--adaptacja prowadzi do zmniejszenia błędu za pomocą lokalnej poprawy dyskretyzacji przestrzennej, bez wprowadzania nowych stopni swobody. Każdy rodzaj adaptacji wprowadza pewne komplikacje i problemy, stąd efektywne zastosowanie którejkolwiek z nich nie jest zadaniem trywialnym. Niezależnie od komplikacji z tym związanych, stosowanie technik adaptacyjnych zazwyczaj znacząco podnosi zapotrzebowanie na moc obliczeniową oraz pamięć RAM. To w naturalny sposób prowadzi do wykorzystywania środowisk obliczeń równoległych dużej skali.

 

Zarówno architektury sprzętowe jak i algorytmy środowisk równoległych przeważnie wymagają, aby przestrzeń problemu była podzielona na zbiór mniejszych pod-problemów, a końcowe rozwiązanie jest otrzymywane poprzez odpowiednie połączenie policzonych pod-zadań. Równoległe środowiska obliczeniowe mogą być rozważane jako środowiska z pamięcią współdzieloną (ang. Shared memory) lub pamięcią rozproszoną (ang. distributed memory). Coraz powszechniejsze są architektury hybrydowe, jednocześnie wspierające pamięć współdzieloną i rozproszoną. Wszystkie trzy rodzaje środowisk borykają się z pewnymi problemami, m.in.: synchronizacją, jednoczesnym dostępem do pamięci, alokacją zasobów, sekcjami krytycznymi i innymi. W celu rozwiązania tych i innych problemów zostały opracowane pewne standardy. W środowiskach z pamięcią rozproszoną koncepcja wymiany komunikatów (ang. Message Passing) stał się de facto obowiązkowym standardem, a różne biblioteki komunikacyjne dostarczają implementacji Message Passing Interface (MPI). Implementacje w środowiskach z pamięcią współdzieloną często używają OpenMP w celu zarządzania wykonaniem wielowątkowym.

 

Przez ostatnie lata kontynuowany jest bardzo intensywny rozwój technologii komputerowej. Efektem tego jest pojawianie się nowych platform , technologii i architektur obliczeniowych. W szczególności dotyczy to dziedziny obliczeń z wykorzystaniem kart graficznych (CUDA, OpenCL), pozwalającej na zaprzęgnięcie do pracy setek rdzeni, zazwyczaj wykorzystywanych tylko do wyświetlania grafiki. Ponadto producenci jako alternatywę do obliczeń na kartach graficznych coraz częściej oferują architektury hybrydowe, takie jak Cell B.E. lub procesory ze wsparciem koprocesorów np.: Intel Xeon Phi.

 

ModFEM, dzięki swojej unikalnej architekturze modularnej, pozwala łatwo generować aplikację, pozostawiając użytkownikowi dużą elastyczność i wolność wyboru odnośnie tego, co ma być przedmiotem symulacji, w jaki sposób ma ona przebiegać i jaki sprzęt ma być wykorzystywany do obliczeń.

 

 

 

Tuesday the 15th. Joomla 2.5 Templates.
Copyright 2012

©