Odwiedzać

Odwiedzać
Deweloperzy Narodowe Laboratorium Lawrence'a Livermore'a
Wersja stabilna
3.2.2 / styczeń 2022 r
Napisane w C , C++
System operacyjny Unix / Linux , Mac OS X , Microsoft Windows
Typ Wizualizacja naukowa , Wizualizacja interaktywna
Licencja BSD
Strona internetowa [1]

VisIt to interaktywne narzędzie do równoległej wizualizacji i analizy graficznej typu open source do przeglądania danych naukowych. Może być używany do wizualizacji pól skalarnych i wektorowych zdefiniowanych na strukturalnych i nieustrukturyzowanych siatkach 2D i 3D . VisIt został zaprojektowany do obsługi bardzo dużych zestawów danych w zakresie teraskali, ale może również obsługiwać małe zestawy danych w zakresie kilobajtów.

Historia

VisIt został opracowany przez Departament Energii (DOE) Advanced Simulation and Computing Initiative (ASCI) w celu wizualizacji i analizy wyników symulacji w teraskali. Został opracowany jako platforma do dodawania niestandardowych możliwości i szybkiego wdrażania nowych technologii wizualizacji. Po początkowych pracach nad prototypem, prace nad VisIt rozpoczęły się latem 2000 r., a wstępna wersja VisIt została wydana jesienią 2002 r. Chociaż główną siłą napędową rozwoju VisIt była wizualizacja bardzo dużych danych, jest również dobrze nadaje się do wizualizacji danych z typowych symulacji na systemach stacjonarnych. Ze względu na możliwość zastosowania wykraczającą poza wizualizację danych w teraskali, VisIt jest udostępniany bezpłatnie. W 2005 roku zdobył nagrodę R&D 100 Award.

VisIt jest teraz wspierany przez program SciDAC (Scientific Discovery Through Advanced Computing) DOE, który pomaga w analizie i wizualizacji dużych zbiorów danych generowanych przez otwarte obliczenia naukowe. W związku z tym jest obecnie częściowo rozwijany przez wiele organizacji, w tym między innymi Oak Ridge National Laboratory , Lawrence Berkeley National Laboratory i University of California, Davis . Ponieważ VisIt jest open source i wydany na licencji BSD, wielu innych również wniosło swój wkład.

Streszczenie

VisIt to otwarta aplikacja pod klucz do symulowanych i eksperymentalnych zestawów danych na dużą skalę. Jego statut wykracza poza ładne obrazki; aplikacja jest infrastrukturą do równoległego, ogólnego przetwarzania końcowego niezwykle dużych zbiorów danych. Docelowe przypadki użycia obejmują eksplorację danych, analizę porównawczą, debugowanie wizualne, analizę ilościową i prezentację graficzną.

Produkt VisIt zapewnia wysiłki wielu programistów w jednym pakiecie. Po pierwsze, VisIt wykorzystuje kilka zewnętrznych bibliotek: Qt dla swojego interfejsu użytkownika, język programowania Python dla interpretera wiersza poleceń oraz bibliotekę Visualization ToolKit (VTK) dla swojego modelu danych i wielu algorytmów wizualizacji. Ponadto na rozwój samego VisIt poświęcono dodatkowe pięćdziesiąt osobolat pracy. Specyficzny wysiłek VisIt był w dużej mierze skoncentrowany na równoległości dla dużych zestawów danych, interfejsu użytkownika , wdrażanie niestandardowych procedur analizy danych, zajmowanie się niestandardowymi modelami danych (takimi jak adaptacyjne udoskonalanie siatki (AMR) i strefy mieszanych materiałów) oraz tworzenie solidnego ogólnego produktu. VisIt składa się z ponad półtora miliona linii kodu, a biblioteki innych firm mają dodatkowy milion linii kodu. Został przeniesiony na Windows , Mac i wiele wariantów Uniksa , w tym AIX , IRIX , Solaris , Tru64 i Linux , w tym porty dla SGI Altix , Cray's XT4 i wiele klastrów towarowych .

Podstawowym projektem jest model klient-serwer , w którym serwer jest równoległy. Aspekt klient-serwer pozwala na efektywną wizualizację w środowisku zdalnym, podczas gdy równoległość serwera pozwala na rozsądne interaktywne przetwarzanie największych zestawów danych. Narzędzie zostało użyte do wizualizacji wielu dużych zestawów danych, w tym dwudziestu siedmiu miliardów punktów danych, symulacji cząstek punktowych oraz siatek krzywoliniowych, nieustrukturyzowanych i AMR zawierających setki milionów do miliardów elementów. Najbardziej rozpowszechnioną formą serwera jest autonomiczny proces, który wczytuje dane z plików. Istnieje jednak alternatywna forma, w której kod symulacji może łączyć się w „lib-VisIt” i sam stać się serwerem, umożliwiając wizualizacja i analiza in situ .

VisIt jest zgodny z paradygmatem sieci przepływu danych , w którym moduły interoperacyjne są połączone w celu przeprowadzenia niestandardowej analizy. Moduły pochodzą z pięciu podstawowych abstrakcji interfejsu użytkownika VisIt i istnieje wiele przykładów każdego z nich. Istnieje dwadzieścia jeden „wykresów” (sposoby renderowania danych), czterdziestu dwóch „operatorów” (sposoby manipulowania danymi), osiemdziesiąt pięć czytników formatów plików, ponad pięćdziesiąt „zapytań” (sposoby uzyskiwania informacji ilościowych) i ponad jeden sto „wyrażeń” (sposoby tworzenia wielkości pochodnych). Ponadto wtyczki umożliwia dynamiczne włączanie nowych modułów wykresu, operatora i bazy danych. Wtyczki te mogą być częściowo generowane w kodzie, nawet włączając automatyczne generowanie Interfejsy użytkownika Qt i Python .

Projekt VisIt powstał w Lawrence Livermore National Laboratory w ramach programu Advanced Simulation and Computing (ASC) Narodowej Agencji Bezpieczeństwa Jądrowego Departamentu Energii (DOE), ale stał się rozproszonym projektem rozwijanym przez kilka grup. Główne ośrodki projektu pochodzą z:

  • VACET, centrum technologii wspomagających z programu DOE SciDAC (Scientific Discovery through Advanced Computing) prowadzonego przez Biuro Naukowe,
  • z ASC i
  • z GNEP (Globalne Partnerstwo Energii Jądrowej z Biura Energii Jądrowej DOE).

W projekcie bierze udział dwudziestu programistów z wielu organizacji i uniwersytetów, w tym pięć laboratoriów DOE. VisIt otrzymał nagrodę R&D 100 Award w 2005 roku i jest pobierany około dwadzieścia pięć tysięcy razy rocznie.

Cechy

  • Posiada bogaty zestaw funkcji do wizualizacji pól skalarnych , wektorowych i tensorowych . VisIt równie dobrze radzi sobie z danymi 2D i 3D. VisIt ma również możliwość animowania danych, pozwalając użytkownikom zobaczyć ewolucję ich danych w czasie .
  • Zapewnia jakościową i ilościową wizualizację i analizę . VisIt zapewnia obsługę pól pochodnych, które umożliwiają obliczanie nowych pól przy użyciu istniejących pól. Na przykład, jeśli zbiór danych zawiera pole prędkości , możliwe jest zdefiniowanie nowego pola, które jest wielkością prędkości. Obsługuje również uogólniony interfejs zapytań, który umożliwia zapytania o wielkości pochodne, takie jak objętość lub pole powierzchni .
  • Obsługuje wiele typów siatek. VisIt zapewnia obsługę szerokiej gamy siatek obliczeniowych, w tym dwu- i trójwymiarowych siatek punktowych, siatek prostoliniowych , krzywoliniowych i niestrukturalnych . Ponadto VisIt obsługuje ustrukturyzowane siatki AMR i siatki CSG .
  • Potężny, w pełni funkcjonalny graficzny interfejs użytkownika . Graficzny interfejs użytkownika VisIt umożliwia początkującym użytkownikom szybkie rozpoczęcie wizualizacji danych, a zaawansowanym użytkownikom dostęp do zaawansowanych funkcji. Automatycznie tworzy oparte na czasie animacje z zestawów danych zawierających wiele kroków czasowych. Ma również klatek kluczowych , która pozwala użytkownikom tworzyć zaawansowane animacje. VisIt pozwala użytkownikom przesuwać , powiększać i obracać obiektów interaktywnie za pomocą myszy. Daje również użytkownikom możliwość interaktywnego określania rozmiaru i pozycjonowania obiektów geometrycznych, takich jak płaszczyzny i kule.
  • Architektura równoległa i rozproszona. VisIt wykorzystuje rozproszoną i równoległą do interaktywnej obsługi bardzo dużych zbiorów danych. Możliwości renderowania i przetwarzania danych VisIt są podzielone na komponenty przeglądarki i silnika , które mogą być dystrybuowane na wielu komputerach:
    • Viewer jest odpowiedzialny za renderowanie i jest zwykle uruchamiany na lokalnym komputerze stacjonarnym lub serwerze wizualizacji, dzięki czemu może wykorzystać niezwykle wydajne karty graficzne .
    • Silnik jest odpowiedzialny za większość przetwarzania danych oraz wejścia/wyjścia i zazwyczaj jest uruchamiany na zdalnej maszynie , na której znajdują się dane. Eliminuje to konieczność przenoszenia danych i udostępnia zaawansowane zasoby obliczeniowe i we/wy. Silnik może pracować szeregowo na pojedynczym procesorze lub równolegle na tysiącach procesorów.
  • Interfejsy z C++ , Pythonem i Javą . Interfejsy C++ i Java umożliwiają zapewnienie alternatywnych interfejsów użytkownika dla VisIt lub pozwalają istniejącym aplikacjom C++ lub Java na dodanie obsługi wizualizacji. skryptowy Pythona daje użytkownikom możliwość przetwarzania wsadowego danych przy użyciu języka skryptowego. Ta funkcja może być wykorzystana do tworzenia niezwykle wyrafinowanych animacji lub implementacji zestawów regresji .
  • Rozszerzalny dzięki dynamicznie ładowanym wtyczkom . VisIt osiąga rozszerzalność dzięki zastosowaniu dynamicznie ładowanych wtyczek. Wszystkie wykresy , operatory i czytniki baz danych VisIt są zaimplementowane jako wtyczki i są ładowane w czasie wykonywania z katalogu wtyczek. Nowe wtyczki można dodawać po prostu instalując je w tym katalogu. VisIt jest wyposażony w graficzne narzędzie do tworzenia wtyczek, które znacznie upraszcza proces tworzenia nowych wtyczek.

Zobacz też

Linki zewnętrzne