Chapel

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

Rating: 2.0/5 (Total Votes: 1)

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

Magic C++
Magic C++

3 Jun 15

C
C

3 Jun 15

bff
bff

3 Jun 15

ccache
ccache

20 Feb 15

Komentarze do Chapel

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