Chapel

Screenshot Software:
Chapel
Szczegóły programowe:
Wersja: 1.3.0 Pre-Alpha
Filmu: 11 May 15
Wywoływacz: Cray Inc.
Licencja: Wolny
Popularność: 12

Rating: nan/5 (Total Votes: 0)

Kaplica jest nowym językiem programowania równoległego rozwijany przez Cray Inc., w ramach prowadzonej przez DARPA programu Computing Systems wysoką wydajność (HPCS). Kaplica ma na celu poprawę wydajności high-end użytkowników komputerów, a także posłużyć jako przenośny model programowania równoległego, które można wykorzystać na klastrach towarowych lub systemów wielordzeniowych pulpitu. Kaplica stara się znacznie poprawić programowania komputerów równoległych dużych dobieranie lub pokonując wydajność i przenośność obecnych modeli programowania takich jak MPI.
Aplikacja Kaplica obsługuje wielowątkowe Model Wykonanie poprzez abstrakcje wysokiego szczebla dla równoległości danych, równoległości zadań, współbieżności i zagnieżdżonej równoległości. & Nbsp; Chapel Typ locale umożliwia użytkownikom określenie i rozum o umieszczenie danych i zadań na docelową architekturę w porządku dostroić do miejscowości. Kaplica obsługuje agreguje dane z widokiem na globalnej implementacji zdefiniowanych przez użytkownika, operacje na rozproszonych struktur danych, pozwalając, aby być wyrażone w sposób naturalny. W przeciwieństwie do wielu poprzednich wyższego poziomu języków równoległych, Kaplica została zaprojektowana wokół filozofii wielorozdzielczej, pozwalając użytkownikom na początku napisać bardzo abstrakcyjne, a następnie stopniowo kod dodać więcej szczegółów, dopóki nie są tak blisko do maszyny, jak ich potrzeby wymagają. Kaplica popiera ponowne wykorzystanie kodu i szybkiego prototypowania poprzez projektowania obiektowego, typ wnioskowania i funkcji programowania generycznego.
Kaplica została zaprojektowana od pierwszych zasad, a nie poprzez rozszerzenie istniejącego języka. Jest to konieczne, język od zbudowane, zaprojektowane tak, aby być łatwy do nauki dla użytkowników C, C ++, Fortran, Java, Perl, Matlab, i innych popularnych językach. Podczas gdy opiera się na koncepcji kaplica i składni języków z wielu poprzednich, jego funkcje są równoległe najbardziej bezpośredni wpływ ZPL, High-Performance Fortran (HPF), a Cray MTA i handlu; / Cray XMT i handlu; rozszerzeń C i Fortran

Co nowego w tym wydaniu:.

  • Najważniejsze (szczegóły poniżej)
  • Podział "def" keyword proc "w" (procedury) i "iter" (dla iteratory)
  • (patrz '$ CHPL_HOME / util / konwersja-DEFS --help' o pomoc aktualizującą istniejące kody)
  • dodanej "repliką" dystrybucja i ulepszona "Block-Cykliczny" dystrybucji
  • (patrz & quot; Standardowy Dystrybucje & quot; w ciemno i przykłady / starterów / distributions.chpl)
  • locale dodaje pojedynczych warstw zadanie dla Nanos ++ (BSC) i Qthreads (Sandia)
  • (zobacz doc / README.tasks)
  • głównym przeróbką semantyki zasięgu i realizacji
  • (patrz & quot; Zmiany semantyczne / Zmiany w Chapel Język & quot; szczegółowo poniżej)
  • wstępne wsparcie dla lotnych rodzaje: bool, int, uint, prawdziwy, urojona
  • (zobacz doc / noty techniczne / README.volatile)
  • wsparcie dla extern consts i klas (wskaźniki typu na elemencie)
  • (zobacz doc / noty techniczne / README.extern)
  • poprawiona obsługa równoległości danych na Cray XMT
  • rozległe ulepszenia kodów próbki w przykładach / katalogu
  • (patrz kody '' Przykład poniżej i przykłady / README)
  • dodany najwięcej przykładów kodu od specyfikacji do nowego katalogu / przykłady
  • (patrz przykłady / niespełniającego / *)
  • dodał komentarz techniczny opisujący interfejs map domeny zdefiniowanej przez użytkownika
  • (zobacz doc / noty techniczne / README.dsi)
  • obszerne aktualizacje specyfikacji języka
  • (patrz "Dokumentacja" poniżej)
  • kilka ulepszeń zadaniami przydzielonymi wykonawczego i warstwy komunikacji
  • (patrz & quot; Runtime Library Zmiany & quot; poniżej)
  • Syntactic / Naming zmian
  • Podział "def" keyword proc "w" (procedury) i "iter" (dla iteratory)
  • (patrz '$ CHPL_HOME / util / konwersja-DEFS --help' o pomoc aktualizującą istniejące kody)
  • Zmiana nazw domen '' / tablice arytmetyczne na "prostokątne" Domeny / tablice
  • dodano wsparcie dla pływających literały punkcie postaci "1.E ..."
  • (wcześniej, tylko "1e ..." i "1.0e ..." były wspierane)
  • Zmiany semantyczne / Zmiany w Chapel Język
  • kilka ulepszeń w zakresie (patrz "Zakresy" rozdział w specyfikacji języka):
  • dodaje koncepcję dostosowania do wskazania modulo wyrównania | krok |
  • "align dodał" zapytanie do operatora i zakresów określić / wyrównanie zapytania
  • (np, "1..10 przez 3 align 2" = & gt; "2, 5, 8 'od 2 == 5 == 8, mod 3)
  • == zdefiniowano w zakresach pod względem sekwencji liczb całkowitych, które generują
  • zdefiniowane Ident (R1, R2), aby stwierdzić, czy R1 i R2 są semantycznie identyczne
  • zdefiniowane "# k" dla k & lt; 0 w ten sposób & quot; liczyć od końca zakresu & quot;
  • dodanej "pierwszy", "ostatni", "alignedLow metody alignedHigh, '' do zakresów
  • (np, "1..10 przez -2 '= & gt; pierwsza == 10, ostatnia == 2, alignedLow = 2, alignedHigh = 10),
  • dodano wsparcie dla wielu nowych funkcji zapytań Zakres
  • (np alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • dodano wsparcie dla lotnych bool, int, uint prawdziwe i typów urojona
  • (zobacz doc / noty techniczne / README.volatile)
  • dodany sprawdzenie wycofanego z pliku typu pliku
  • (np., "Podczas gdy! Infile.eof ...")
  • usunięte wsparcie dla leczenia "powrót" w iterator jako "plon",
  • (na przykład, zmiana "iter foo () {return x;} 'do' iter foo () {wydajność x; return;} ')
  • dodano wsparcie do odwołujących modułów bez pierwszego "use'-nia je
  • (na przykład, moduł M1 {var x ...} {... moduł M2 ...} jest M1.x teraz prawna)
  • dodał zapytanie callStackSize do rodzaju locale
  • (np, "here.callStackSize" zwraca rozmiar stosu wywołań od bieżącej lokalizacji)
  • usunięte wcześniej wymagany średnik z końca deklaracji enum
  • (np, "enum {czerwone kolory, niebieski, zielony} 'jest legalna; wcześniej potrzebny'; ')
  • dodano wsparcie dla jednego spływu przecinek na końcu listy enum
  • (np, "enum {czerwone kolory, niebieski, zielony,} 'jest legalna)
  • usunięte wsparcie dla domen +/- operatorów na prostokątnych; używać translate ()
  • rozbudowywane Cechy
  • realizowane == /! = Na prostokątnej, stowarzyszeniowej i nielicznych dziedzin,
  • Standardowe Dystrybucje
  • dodał pierwszy projekt "replikowane 'dystrybucję do przechowywania danych nadmiarowo
  • (patrz przykłady / startery / distributions.chpl)
  • ulepszona "Block-Cykliczny", wystarczające do prawidłowego wdrożenia HPCC PTRANS i HPL,
  • (patrz przykłady / HPCC / ptrans.chpl, hpl.chpl; przykłady / Startery / distributions.chpl)
  • usunąć nadmiarowość w specyfikacji iteratorów lidera między domenami / tablic
  • Moduły standardowe
  • dodał krawędzi i Nan stałe do modułu Math.chpl
  • (patrz "Math" pod & quot; standardowych modułów & quot; w języku specyfikacji)
  • dodany isinf () i () isFinite procedury testowe do modułu Math.chpl
  • (patrz "Math" pod & quot; standardowych modułów & quot; w języku specyfikacji)
  • dodaje pół tuzina więcej procedur do modułu GMP.chpl
  • Dokumentacja
  • dodał nową notatkę techniczny opisujący interfejs map domeny zdefiniowanej przez użytkownika
  • (zobacz doc / noty techniczne / README.dsi)
  • poczynili wiele usprawnień w specyfikacji języka
  • główne zmiany do działu domen w celu poprawy przejrzystości / dokładność
  • lepsze i ujednolicone struktura Records i Ćwiczenia rozdziały
  • główne zmiany do rozdziału Domain Maps poprawić jasność / Dokładność
  • Kody nazwie przykład, aby zapewnić odsyłacz do przykładów / Spec / programy
  • wyjaśnić legalność etykiecie / przerwy / dalej w pętli równoległych
  • zaktualizowane opisy czytać [ln] / Zapis [ln]
  • poprawiono kilka problemów w dziedzinie plików zamawianiu
  • sformatowany specyfikacji jako "książki" w LaTeX
  • różne drobne poprawki literówek / błędów
  • lepsze definicje / opisy kilku kategoriach,
  • dodany dokumentacji locale.name
  • i wiele innych zmian ...
  • zaktualizowany dokument szybkie odniesienie do obejmują DEF- & gt; proc / iter zmiany, dostosowania op
  • .
  • przepisał / zreorganizowane README.extern wyjaśnić wyjaśnień i wychować na bieżąco
  • dodał README opisujące "lokalny" oświadczenie (doc / noty techniczne / README.local)
  • dodał README opisujące lotnych rodzaje (doc / noty techniczne / README.volatile)
  • zaktualizowane README.comm diagnostyki wspomnieć szybko statystyki widelec
  • aktualizowane różne README
  • Przykładowe kody
  • umieszczone najwięcej przykładów kodu od specyfikacji języka. do podkatalogu nowego SPEC /
  • poprawiła podkłady / katalogu:
  • dodał nowy podkład do stosowania procedur (podkłady / procedures.chpl)
  • dodany podstawowy podkład dla domen (podkłady / domains.chpl)
  • przemianowany na lokalizacje grunt do locales.chpl i poprawić go
  • poprawiła podkład podziały i dodaje Block-cykliczne i replikuje zastosowania
  • zaktualizowane podkład Zakres (podkłady / range.chpl)
  • poprawiła podkład iteratorów (podkłady / iterators.chpl)
  • poprawiła podkład redukcje (podkłady / reductions.chpl)
  • () dodaje się getCurrentTime do podkładu timery (podkłady / timers.chpl)
  • dodania opisów aliasów typu i rodzajów konfiguracyjnych do zmiennych podkładem
  • (patrz starterów / variables.chpl)
  • poprawiła katalog HPCC / benchmarki
  • dodany pierwszą wersję HPCC PTRANS do HPCC / katalogu (ptrans.chpl)
  • dodany czystszą wersję HPCC HPL do HPCC / katalogu (hpl.chpl)
  • dodany podkatalogu wariantów / przykładów / HPCC eksponować inne podejścia,
  • dodany strumień promoted.chpl pokazać korzystania z promocji w globalnej STREAM Triad
  • dodany RA-cleanloop.chpl pokazać czyszczenia (ale obecnie wolniej) jądra RA
  • lepsze przykłady najwyższego poziomu:
  • przemianowane istniejącym & quot; hello, world & quot; przykłady zaproponować logiczną kolejność czytania
  • (patrz przykłady / hello * .chpl)
  • dodaniu danych równoległe i rozproszone dane równoległe komentarzy, przykłady świata
  • (patrz przykłady / hello3-datapar.chpl, przykłady / hello4-datapar-dist.chpl)
  • dodania komentarzy do różnych komentarzy, przykłady świata (przykłady / hello * .chpl)
  • zaktualizowane wszystkie przykłady aktualnych semantyki języka
  • używać 'proc' / 'iter "zamiast" def "
  • aktualizacja w celu odzwierciedlenia nowych semantykę zakres
  • Notatki danej platformy
  • Cray XT / dla Cray XE, poprawiła aprun i PBS-aprun wyrzutnie
  • (patrz & quot; specyficzne Launcher notatki & quot; poniżej)
  • dla Cray XMT, dodano wsparcie dla pętli równoległych na zakresach
  • dla Cray XMT, dodał generacji noalias pragmas do forall zmiennych pętli
  • dodano wsparcie dla MareNostrum BSC tym docs i specjalnej wyrzutni
  • (zobacz doc / platform / README.marenostrum)
  • specyficzne Launcher notatki
  • dodaje opcje specyficzne dla programów uruchamiających się --help możliwości
  • poprawiła propagacji kodów stanu wyjścia poprzez wyrzutnie
  • zmienił wyrzutnie wspierać oparte exec (a nie oparte na systemie) polecenia
  • wykonane wyrzutnie używać "unlink", a nie systemu ("rm"), aby usunąć pliki tymczasowe
  • dodany wyrzutnię dla BSC MareNostrum
  • zmniejszenie liczby plików tymczasowych wykorzystywanych do wychwytywania wyjście 'systemu' polecenia
  • aprun ulepszenia launcher:
  • dodał --cc flagę, aby określić zadanie procesora w / w węźle
  • dodał -q flagę, aby uruchomić wyrzutnię w trybie cichym,
  • możliwość debugowania poprzez dodaje zachować tmp CHPL_LAUNCHER_DEBUG pliki całym
  • PBS-aprun ulepszenia launcher:
  • dodał --cc flagę, aby określić zadanie procesora w / w węźle
  • możliwość debugowania poprzez dodaje zachować tmp CHPL_LAUNCHER_DEBUG pliki całym
  • oczyścić wyjście, aby pozbyć się jakiegoś obcego druku
  • Wsparcie wykonane badanie nasz system wyrzutni
  • dodany --walltime i --queue flagi launcher jako alternatywy ENV. Vars.
  • Compiler zmiany
  • wykonany wydruk kompilatora 'true' / 'false' w podpisach typu, a nie 1/0
  • param 'dodaje config ", aby wyłączyć noRefCount liczenia odniesienia (może wyciekać pamięci)
  • flag kompilatora
  • dodaje flagę --print-callstack na błąd, aby pokazać, co doprowadziło do poważnej rozmowy
  • dodaje flagę --no-Codegen pominąć kod generacji i fazy łączącej
  • Interoperacyjność zmiany
  • dodano wsparcie dla extern C & quot; klas & quot; (Wskaźnik do struktury typu)
  • dodano wsparcie dla extern consts (patrz README.extern)
  • Usprawnienia Komunikat o błędzie
  • dodał ostrzeżenie osierocone "użytkowania" oświadczeń poza zadeklarowanymi modułów
  • (np, "używać M1, M2 {} moduł" powinny zazwyczaj być "{wykorzystanie modułu M2 M1;} ')
  • parse się komunikat o błędzie w czasie używać standardowego "Nazwa pliku: LINENO:" formatu
  • generowany komunikat o błędzie na odnoszące się do nazwy klasy w metodzie podstawowej
  • (np, "klasa C {def Cm () {...}} 'teraz generuje komunikat o błędzie),
  • Poprawione błędy / Nowe Sprawdza semantyczne (dla starych semantyki)
  • zapobiec rodzaje config przed ustawić za pomocą flagi czas realizacji wiersza polecenia
  • kompilator stałej zdolności do radzenia sobie związki bez pól
  • stałej redukcji minloc / maxloc do obsługi pustych zakresy / podzakresy o wartości
  • Naprawiono błąd, w którym "ścieżka" argument konstruktorów plików został zignorowany
  • wykonane puste związki działają poprawnie,
  • naprawiono błąd przepełnienia w wyrwy się zakresy dystrybucji / zrównoleglania
  • Naprawiono błąd, obejmujące wsparcie dla pustych extern typów rekordów,
  • Naprawiono błąd z udziałem extern funkcje, które zwracają rekordy
  • Naprawiono błąd związany z kopiując rekordy zewnętrznych
  • stałe wdrażanie +/- operatorów na stowarzyszeniowej / rzadkie domeny
  • Naprawiono błąd odnoszący się do nazwy modułów nazw plików zawierających wiele opartych ''S.
  • Wiadomości dodany błędów dla poszerzyć / zewnętrzne / wnętrze o nieregularnych domen
  • dodał błąd dla konstruktorów / destruktory z określonego typu powrotnej
  • Naprawiono parę błędów dotyczących "na szybko" optymalizacji
  • dodany czek przeciwko budowie klasy rodzajowe bez określenia pól
  • Zmiany Opakowania
  • dodany składni kodu źródłowego Highlighter dla GNU-podświetleniem
  • (patrz etc / source-podświetlenia / README)
  • ulepszone wsparcie dla kolorowania emacs wersji 22.x
  • (patrz etc / emacs / README)
  • aktualizacje vim kolorowanie składni w celu odzwierciedlenia nowego "proc" / "ITER słowa kluczowe
  • (patrz etc / vim / README)
  • dodaje skrypt do konwersji "używania" istniejące kody def "na" iter proc '/' '
  • (patrz $ CHPL_HOME / util / konwersja-defs)
  • usunięte multirealm przykłady i dokumentację na razie
  • Oprogramowanie firm trzecich zmiany
  • zaktualizowany do wersji 1.16.1 GASNet
  • dodany kopie BSC Nanos ++ i Sandia w Qthreads
  • (patrz innych firm / README)
  • wykonane po instalacji krok dla GASNet który zmienia ścieżki bezwzględne do względnej
  • usunięte PVM na razie ze względu na niestabilność
  • Runtime Library zmiany
  • locale dodaje pojedynczych warstw zadanie dla Nanos ++ (BSC) i Qthreads (Sandia)
  • kilka usprawnień w warstwie Runtime tasking:
  • dodano nowy interfejs o chpl_main połączenia warstwy wielozadaniowych ()
  • zmienił wielozadaniowych funkcji init wziąć args maxThreadsPerLocale / callStackSize
  • wydajność zdolność dodane do interfejsu zadaniem warstwy wielozadaniowych
  • Kod czas pracy poprawiła się unikać synchronizacji vars przed inicjowanie wielozadaniowych
  • usunąć makro-ized forma wielozadaniowy interfejs; przy użyciu standardowych nazw zamiast
  • ujednolicone nazewnictwo wszystkich procedur warstwy zadanie chpl_sync _ * () i chpl_task _ * ()
  • usunąć wymóg wdrożenia jednolitego zmiennej interfejs
  • przeniósł zakończenie wątków z warstwą kolejka tasking do pthreads wątków
  • uprościć wdrożenie zmiennych synchronizacji w warstwie pthread gwintowania
  • przeniósł odpowiedzialność za wątku liczy się z fifo zadań jednocześnie wątków Pthread
  • kilka usprawnień w warstwie komunikacyjnej czas trwania:
  • odnowiony interfejs komunikacyjny do obsługi argumenty długość / typu
  • dodany interfejs nieblokującą uzyskać operacje komunikator. Interfejs
  • zjednoczony pilot uzyskać wszystkie operacje w użyciu CHPL_COMM_GET makro ()

  • refactored przemianowana na nagłówki interfejsu komunikacji
  • Testing System
  • znacznie lepsze testy wydajności i możliwości graficzne
  • (patrz komentarze na froncie start_test do dokumentacji)
  • ulepszone wsparcie układu badawczego dla sprzątania po sobie
  • dodano możliwość unikać jakichkolwiek zadnie z stdin
  • Dodano opcję, aby zapewnić możliwość prediff całego systemu
  • dodaje możliwość korzystania z natywną funkcję limitu czasu wyrzutni, a nie Pythona
  • System poprawił, jak badania zabija test, który razy na
  • Naprawiono błąd, w którym pliki .preexec pracował tylko wtedy, '.' był w ścieżce
  • Wewnętrzne
  • dodał --break na flagi kompilatora id dla programistów, aby zlokalizować węzeł AST tworzy
  • lepszej organizacji zawartości util / katalogów
  • zmienił sposób numery wersji są obliczane / SVN wyświetlane dla użytkowników opartych
  • dodano wsparcie dla zadaniowego / kodu specyficznego wątku modułu
  • dodał możliwość wypisują liczby AST przydzielone Pomiędzy każdym
  • dodał nowy gdb alias do kompilator --gdb: "op" drukuje węzła AST w lokalizacji
  • znacznie się poprawiła realizacja pragmas / flagi, aby uniknąć przypadków błędów
  • usunąć kilka przypadków zbędnych porównań smyczkowych w kompilator
  • usunięte wykorzystanie podatne na błędy z CHPL_TASKS i CHPL_THREADS jako symbole preprocesora
  • dodany dokumentacji dla deweloperów (BestPractices nie zawiera w wydaniu)
  • zmienił wewnętrznego munging z '=' i '==' do 'Przypisanie' i 'RÓWNOŚCI "odpowiednio
  • dodaje flagę programistów --print-id-na-ID błędu AST do wydrukowania na temat błędów,
  • poprawiła surowość prototypu C ++ sprawdzania
  • dodany zewnętrznych umów specjalista do drzewa SVN (nie w wydaniu)
  • dodał pojęcie typów wewnętrznych wykorzystywanych przez kompilator, ale nie przez użytkownika

Podobne oprogramowanie

aime
aime

19 Feb 15

lizpop
lizpop

14 Apr 15

Racket
Racket

27 Sep 15

Komentarze do Chapel

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!