Chapel

Yazılım ekran görüntüsü:
Chapel
Yazılım detaylar:
Versiyon: 1.3.0 Pre-Alpha
Qayıt: 11 May 15
Geliştirici: Cray Inc.
Lisans: Ücretsiz
Popülerlik: 12

Rating: nan/5 (Total Votes: 0)

Chapel DARPA liderliğindeki Yüksek Verimlilik Hesaplama Sistemleri programı (Yüksek basınçlı) bir parçası olarak Cray Inc tarafından geliştirilen yeni bir paralel programlama dilidir. Şapel de emtia kümeler veya masaüstü çok çekirdekli sistemlerde kullanılabilecek portatif bir paralel programlama modeli olarak görev yaparken high-end bilgisayar kullanıcılarının verimliliğini artırmak için tasarlanmıştır. Şapel eşleştirme veya MPİ gibi güncel programlama modellerinin performans ve taşınabilirlik yenerek ederken çok büyük ölçekli paralel bilgisayarların programlanabilirlik geliştirmek için çaba göstermektedir.
. Şapel uygulaması veri paralelliği, görev paralellik, eşzamanlılık ve iç içe paralellik & nbsp üst düzey soyutlamalar yoluyla bir çok iş parçacıklı yürütme modelini destekler; şapelin yerel tip kullanıcıları belirtmek ve sırayla bir hedef mimarisi üzerinde veri ve görevleri yerleşimi hakkında sebebi sağlayan yöreden ayarlamak için. Şapel doğal bir şekilde ifade edilmesi dağıtık veri yapıları üzerinde operasyonlar izin, kullanıcı tanımlı uygulamaları ile küresel görünümü veri agrega destekler. Önceki birçok üst düzey paralel dillere aksine, Şapel başlangıçta çok soyut kod yazmak için kullanıcıların izin, bir çoklu çözünürlük felsefesi etrafında tasarlanmış ve onların gereksinimlerine göre makineye yakın kadar sonra aşamalı fazla ayrıntı eklemek olduğunu. Şapel genel programlama için nesne yönelimli tasarım, tür kesmesi ve özellikleri üzerinden kod yeniden ve hızlı prototipleme destekler.
Chapel ilk prensiplerden ziyade varolan dil uzatarak tasarlanmıştır. Bu C, C ++, Fortran, Java, Perl, Matlab, ve diğer popüler dilleri kullanıcılar için öğrenmesi kolay olacak şekilde tasarlanmıştır bir zorunluluk blok yapılı dilidir. / Cray XMT & trade; Şapel birçok önceki dillerden kavram ve sözdizimi üzerine inşa ederken, kendi paralel özellikler en doğrudan ZPL, Yüksek Performanslı Fortran (HPF) ve Cray MTA ve ticaret etkilenir; C ve Fortran için uzantıları

Bu sürümde Yeni nedir:.

  • Highlights (detaylar için aşağıya bakınız)
  • bölünmüş 'def' (prosedürler için) 'proc' içine anahtar kelime ve (yineleyiciler için) 'iter'
  • (bkz: '$ CHPL_HOME / util / convert-defs --help' mevcut kodları güncelleme yardım için)
  • ekledi 'yinelenmiş' dağıtım ve geliştirilmiş 'Blok-Halkalı' dağıtım
  • (bkz & quot; Standart Dağılımları & quot; spec ve örnekler / primerler / distributions.chpl olarak)
  • Nanos ++ (BSC) ve qthreads (Sandia)
  • için tek yerel görev katmanları eklendi
  • (doc / README.tasks bakınız)
  • aralık semantik ve uygulanması büyük elden geçirilmesi
  • (bkz & quot; Semantik Değişiklikler / Chapel Dil & quot değişiklikler; aşağıda ayrıntılı için)
  • uçucu türleri için ilk destek: bool, int, uint gerçek, sanal
  • (bkz doc / teknik notları / README.volatile)
  • extern consts ve sınıflar için desteği (işaretçileri-to-yapılar)
  • (bkz doc / teknik notları / README.extern)
  • Cray XMT veri paralellik için geliştirilmiş destek
  • örnekler / dizininde örnek kodları kapsamlı tadilat
  • (aşağıda 'Örnek Kodları' ve örnekler / README bakın)
  • Yeni örnekler / dizinine spec en kod örnekleri eklenen
  • (örnekler / spec / * bakınız)
  • Kullanıcı tanımlı alanı haritası arayüzünü anlatan bir teknik not eklendi
  • (bkz doc / teknik notları / README.dsi)
  • dil şartnameye geniş güncellemeleri
  • (aşağıda 'Belgeleri' bölümüne bakınız)
  • birkaç çalışma zamanı tasking gelişmeler ve iletişim katmanları
  • (bkz & quot; Runtime Library Değişiklikleri & quot; aşağıda)
  • söz dizimi / Değişiklikler adlandırma
  • bölünmüş 'def' (prosedürler için) 'proc' içine anahtar kelime ve (yineleyiciler için) 'iter'
  • (bkz: '$ CHPL_HOME / util / convert-defs --help' mevcut kodları güncelleme yardım için)
  • adını 'aritmetik' etki / diziler için 'dikdörtgen' etki / diziler
  • formunun nokta değişmezleri kayan desteği eklendi '1.e ...'
  • (daha önce sadece '1e ...' ve '1.0e ...' desteklenmiştir)
  • Semantik Değişiklikler / Chapel Dili değişiklikler
  • aralıkları birkaç iyileştirmeler (bkz: 'Aralıkları "dil spec bölüm):
  • bir hizalama modulo belirtmek için uyum bir kavram eklendi | adım |
  • / sorgu hizalama belirtmek için aralıkları bir 'align operatörü ve sorgu ekledi
  • (örn = & gt '1..10 2 hizalama 3 tarafından'; '2, 5, 8' 2 == 5 == 8, mod 3 beri)

  • Ürettiği tamsayı dizilerinin açısından aralıklarına
  • tanımlanan ==
  • tanımlanan ident (r1, r2) r1 ve r2 semantik özdeş
  • olup olmadığını söylemek için
  • k & lt '# k' tanımlı; Anlam & quot 0;
  • ; aralığın & quot sonundan saymak
  • 'ilk' son ',' alignedLow, 'aralıklarına alignedHigh' yöntemleri eklenen
  • (örn tarafından '-2 1..10' = & gt; birinci == 10, son == 2, alignedLow = 2, alignedHigh = 10)
  • Yeni aralık sorgusu çeşitli fonksiyonları
  • için destek eklendi
  • (örn alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck (...))
  • uçucu bool, int, uint gerçek ve imag türleri için destek eklendi
  • (bkz doc / teknik notları / README.volatile)
  • dosya türü bir sonu dosyaya onay ekledi
  • (örn., 'While! Infile.eof ...')
  • 'verim'
  • olarak yineleyici olarak 'dönüş' tedavisi için destek kaldırıldı
  • (örn değişikliği 'iter foo () {return x;}' için 'iter foo () {verim x, return;}')
  • 'ilk use'-ing onları
  • olmadan başvuran modülleri desteği eklendi
  • (örn modül M1 {var x ...} modülü M2 {... M1.x ...} şimdi yasal)
  • Yerel türüne callStackSize sorgusu eklenen
  • (örn 'here.callStackSize' Yerele çağrı yığın boyutunu döner)
  • enum bildirimleri sonunda
  • dan önceden gerekli noktalı virgül kaldırıldı
  • (; önceden gerekli örneğin, 'enum renkleri {kırmızı, mavi, yeşil}' artık yasal değil ';')
  • enum listelerinin sonuna
  • tek bir firar virgül desteği eklendi
  • (örn 'enum renkleri {kırmızı, mavi, yeşil,}' şimdi yasal)
  • dikdörtgen etki +/- operatörler için destek kaldırıldı; tercüme kullanmak ()
  • Yeni Uygulanan Özellikler
  • uygulanan == /! = Dikdörtgen, ilişkili ve seyrek alanlar için
  • Standart Dağılımları
  • yedekli veri depolamak için bir ilk taslağı 'yinelenmiş' dağıtım eklendi
  • (örnekler / primerler / distributions.chpl bakınız)
  • gelişmiş 'Blok Halkalı' doğru uygulamak için yeterli HPCC PTRANS ve HPL
  • (örnekler / HPCC / ptrans.chpl, hpl.chpl bkz örnekler / primerleri / distributions.chpl)
  • etki / diziler arasında lider yineleyiciler şartnamede kaldırıldı fazlalık
  • Standart Modüller
  • Math.chpl modülüne INFINITY ve NAN sabitlerini ekledi
  • (& quot altındaki 'Matematik' bakınız; Standart Modüller & quot; dil spec)
  • isinf () ve isFinite () Math.chpl modülüne test rutinleri eklendi
  • (& quot altındaki 'Matematik' bakınız; Standart Modüller & quot; dil spec)
  • GMP.chpl modülüne yarım düzine daha rutinleri eklendi
  • Belgeleme
  • Kullanıcı tanımlı alanı haritası arayüzünü anlatan yeni bir teknik not eklendi
  • (bkz doc / teknik notları / README.dsi)
  • dil belirtimi birçok iyileştirmeler yapılmış

  • Etki bölüm
  • önemli revizyonlar geliştirmek için netlik / doğruluğu
  • geliştirilmiş ve Kayıt birleşik yapısı ve Sınıflar bölüm

  • Alan Haritalar bölüm
  • önemli revizyonlar berraklık / doğruluğu
  • iyileştirmek için
  • adlı örnek kodları örneklerle çapraz referans sağlamak için / spec / programlar
  • paralel döngüler devam / etiket / mola yasallığı açıklık

  • Okumak [ln] / yazma [ln] in
  • güncellenen açıklamaları
  • sipariş dosya alanlarında bazı sorunlar giderildi
  • LaTeX bir 'kitap'
  • olarak şartname reformasyon
    Yazım hataları / hatalar
  • Çeşitli küçük düzeltmeler
  • iyileştirilmiş tanımlar / çeşitli terimlerin tanımları
  • locale.name belgelerine eklendi
  • ve diğer birçok değişiklik ...
  • güncellenen hızlı referans belge ödenmesi hakkında & gt dahil, proc / iter değişim, op hizalama
  • .
  • rewrote / README.extern anlatımı daha açık hale getirmek için ve yeniden up-to-date
  • 'Yerel' deyimini anlatan bir README ekledi (doc / teknik notları / README.local)
  • uçucu türleri açıklayan bir README ekledi (doc / teknik notları / README.volatile)
  • güncellenen README.comm teşhis hızlı çatal istatistiklerini söz
  • güncellenen çeşitli README dosyaları
  • Örnek Kodlar
  • dil spec en kod örnekleri yerleştirilir. Yeni bir spec / alt dizine
  • geliştirilmiş primerler / dizin:
  • prosedürler kullanılarak yeni bir astar eklenir (primerler / procedures.chpl)
  • etki (primerler / domains.chpl)
  • için temel bir astar eklendi
  • yerel ayarlar locales.chpl için primer değiştirildi ve geliştirilmiş
  • dağılımlar astar geliştirilmiş ve katma Blok-Devirli ve yinelenmiş kullanımları
  • aralık primer güncellenmiş (primerler / range.chpl)
  • yineleyiciler astar geliştirilmiş (primerler / iterators.chpl)
  • indirimlerin astar geliştirilmiş (primerler / reductions.chpl)
  • zamanlayıcılar astar GetCurrentTime () eklendi (primerler / timers.chpl)
  • değişkenleri astar
  • tip takma adları ve yapılandırma türleri açıklamaları eklendi
  • (primerler / variables.chpl bakınız)
  • gelişmiş HPCC / kriterler dizini
  • HPCC / dizinine (ptrans.chpl)
  • HPCC PTRANS ilk versiyonunu eklendi
  • HPCC / dizinine (hpl.chpl)
  • HPCC HPL temizleyici sürümünü eklendi
  • örneklere diğer yaklaşımları sergilemek / HPCC bir varyant / alt eklendi
  • küresel STREAM Triad
  • promosyon kullanımını göstermek için dere-promoted.chpl eklendi
  • temizleyici göstermek için ra-cleanloop.chpl ekledi (ama şu anda daha yavaş) RA çekirdeği
  • geliştirilmiş üst düzey örnekleri:
  • değiştirildi mevcut & quot; Merhaba dünya & quot; örnekler mantıksal okuma sırasını önermek
  • (örneklere bakın / merhaba * .chpl)
  • paralel ve dağıtık veri merhaba paralel veri dünya örnekleri eklendi
  • (örnekler / hello3-datapar.chpl, örnekler / hello4-datapar-dist.chpl bakınız)
  • yorum ekledi çeşitli merhaba, dünya örnekleri (örnek / merhaba * .chpl)
  • Geçerli dil semantik tüm örnekler güncellenen
  • kullanın 'proc' / 'iter' yerine 'def'
  • güncelleme yeni seri anlam yansıtmak için
  • Platform özgü Notlar

  • Cray XT / Cray XE için
  • gelişmiş aprun ve pbs-aprun fırlatma
  • (bkz & quot; & quot notlar Launcher özgü; aşağıda)

  • Cray XMT için
  • aralıkları üzerinde paralel döngüler için destek eklendi

  • Cray XMT için
  • döngü değişkenleri forall için noalias pragmas nesil katma
  • dokümanlar ve özel fırlatıcı dahil BSC Marenostrum
  • için destek eklendi
  • (bkz doc / platformlar / README.marenostrum)
  • Launcher özel notlar
  • yeteneği --help için başlatıcısı özel seçenekler eklenmiş
  • rampaları ile çıkış durumu kodları geliştirilmiş yayılma
  • desteklemek için rampası değişti exec-tabanlı (sistemi tabanlı yerine) komutları
  • rampaları geçici dosyaları kaldırmak için yerine sistemin ('rm'), daha 'unlink kullanabilirsiniz yapılan
  • BSC takımından Marenostrum
  • için bir başlatıcısı eklendi
  • 'sistem' çıkış yakalamak için kullanılan geçici dosyaları sayısı azaltılmış komutları
  • aprun başlatıcısı iyileştirmeler:
  • İşlemci atama belirtmek için bir --cc bayrağı eklendi w / bir düğüm
  • sessiz modda başlatıcısı çalıştırmak için -q bayrak eklenen
  • çevresindeki tmp dosyaları tutmak için CHPL_LAUNCHER_DEBUG üzerinden hata ayıklama yeteneği eklendi
  • pbs-aprun başlatıcısı iyileştirmeler:
  • İşlemci atama belirtmek için bir --cc bayrağı eklendi w / bir düğüm
  • çevresindeki tmp dosyaları tutmak için CHPL_LAUNCHER_DEBUG üzerinden hata ayıklama yeteneği eklendi
  • temizlenmiş çıktı, bazı yabancı baskı kurtulmak için
  • yapılan başlatıcısı desteği bizim test sistemi
  • env alternatif olarak başlatıcısı için --walltime ve --queue bayrakları eklendi. vars.
  • Derleyici Değişiklikleri
  • dışarı tip imzaları yerine 1/0
  • 'gerçek' / 'yanlış' derleyici baskı yaptı
  • (bellek sızdırıyor)
  • referans sayma devre dışı bırakmak için yapılandırma param 'noRefCount' eklendi
  • Derleyici Bayrakları
  • kötü çağrı
  • yol göstermek için bir --print-callstack-on-yanılma bayrağı eklendi
  • kod üretimi ve bağlama aşamasını atlamak için bir --no-codegen bayrağı eklendi
  • birlikte çalışabilirlik Değişiklikleri

  • Sınıflar & quot;
  • extern C & quot desteği eklendi; (Işaretçi-için-yapı tipleri)
  • extern consts (README.extern bakınız)
  • için destek eklendi
  • Hata Mesajı İyileştirmeler
  • bir uyarı deklare modülleri dışında 'kullanım' ifadelerini yetim eklenen
  • (örn 'M1 kullanın; modül M2 {}' tipik 'modülü M2 {kullanımı M1;}' olmalı)
  • yapılan ayrıştırma zamanı hata iletisi standart ': LINENO: Dosya adı' kullanmak biçimi
  • birincil yönteminde bir sınıf adına atıfta bulunulması için bir hata iletisi oluşturulur
  • (örn 'C sınıfı {def Cm () {...}}' şimdi bir hata iletisi oluşturur)
    (Eski semantik için)
  • Düzeltmeler / Yeni Semantik Çekler
  • yürütme zamanı komut satırı bayrakları kullanılarak ayarlanan gelen yapılandırma türleri engelledi
  • hiçbir alanlarla sendikaları ele derleyici yeteneğini sabit
  • değerlerin boş aralıkları / subranges işlemek için minloc / maxloc azalmalar sabit
  • Dosya kurucular için 'yol' argümanı göz ardı edildiği bir hata düzeltildi
  • Boş sendikalar düzgün çalışması yapılan
  • dağıtım / paralelizasyon için aralıkları kadar parçalama bir taşma sorunu sabit
  • Boş extern kayıt türleri için destek içeren bir hata düzeltildi
  • kayıtları döndürmek extern fonksiyonları içeren bir hata düzeltildi
  • Dış kayıtları kopyalama ile ilgili bir hata düzeltildi

  • Ilişkisel üzerindeki +/- operatörleri
  • sabit uygulama / seyrek etki
  • birden 'içeren dosya tabanlı modül isimleri ile ilgili bir hata düzeltildi. Kullanıcısının

  • Düzensiz etki / dış / iç mekan genişletme için
  • katma hata iletileri
  • kurucular için bir hata eklendi / belirli bir dönüş türü ile yıkıcı
  • optimizasyon 'hızlı' ilişkin hataların bir çift sabit
  • genel alanlar belirtmeden derslere inşa karşı bir çek ekledi
  • Ambalaj Değişiklikleri
  • GNU kaynak vurgulamak
  • sözdizimi vurgulayıcı kod eklendi
  • (etc / kaynak highlight / README bakın)
  • sürüm 22.x desteği boyama geliştirilmiş emacs
  • (etc / emacs / README bakın)
  • vim sözdizimi renklendirme için güncellemeler yeni 'proc' yansıtmak için / 'iter' anahtar kelimeleri
  • (etc / vim / README bakın)
  • iter '/' proc '
  • ' için 'def mevcut kodları' kullanımını 'dönüştürmek için bir komut dosyası eklendi
  • ($ CHPL_HOME / util / convert-defs bakınız)
    Zaman
  • kaldırıldı multirealm örnekler ve belgeler olmak
  • Üçüncü Taraf Yazılım Değişiklikleri
  • sürüm 1.16.1 için GASNet güncellenen
  • BSC takımından Nanos ++ ve Sandia en qthreads
  • kopyaları eklendi
  • (üçüncü taraf / README bakın)
  • göreceli
  • mutlak yollarını değiştiren GASNet için bir post-install adım attı
  • zaman için kaldırılmıştır PVM nedeniyle istikrarsızlık olmanın
  • Çalışma Zamanı Kitaplığı Değişiklikleri
  • Nanos ++ (BSC) ve qthreads (Sandia)
  • için tek yerel görev katmanları eklendi
  • çalışma zamanı görev katmana birkaç iyileştirmeler:
  • ) (tasking tabakası çağrı chpl_main olması için yeni bir arayüz eklendi
  • maxThreadsPerLocale / callStackSize args almaya init fonksiyonu görev değişti
  • tasking katmanı arayüzüne bir görev verimi yeteneği ekledi
  • eşitleme kullanmaktan kaçının geliştirilmiş çalışma zamanı kodu başlatılıyor önce vars görev
  • arayüzü tasking makro-ized formu kaldırıldı; yerine standart isimler kullanarak

  • Tüm görev tabakası rutinleri
  • birleşik adlandırma chpl_sync için _ * () ve chpl_task _ * ()
  • Tek değişkenli arabirimini uygulamak için gereksinim kaldırıldı
  • diş pthreads için fifo görev katmanından parçacığı taşındı fesih
  • pthread diş tabakasında eşitleme değişkenlerin basitleştirilmiş uygulama
  • diş
  • pthread için fifo tasking gelen iplik sayıları sorumluluğunu taşındı
  • çalışma zamanı iletişim katmana birkaç iyileştirmeler:
  • uzunluk / tip argümanları desteklemek için iletişim arayüzü yeniden
  • olmayan engelleme için bir arayüz comm işlemleri olsun ekledi. arayüz
  • tüm uzak işlemler CHPL_COMM_GET () makro kullanmak olsun birleşik
  • refactored / değiştirildi iletişim arayüzü başlıkları
  • Test Sistemi
  • büyük ölçüde performans testi ve grafik yetenekleri geliştirilmiş
  • (dokümantasyon start_test önünde yorumlara bakınız)
  • kendisi
  • sonra temizlik için test sisteminin desteği geliştirilmiş
  • stdin herhangi indirection kullanmaktan kaçının eklenen yeteneği
  • sistem genelinde prediff seçenek sağlamak için bir seçenek eklendi
  • yerine Python'un
  • daha başlatıcısı yerli zaman aşımı özelliğini kullanma yeteneği eklendi
  • test sistemi bir test öldürür nasıl arttığını zaman aşımına
  • .preexec dosyalar sadece çalıştıkları bir hata düzeltildi. '' senin yolunda idi
  • İç

  • Geliştiriciler AST düğümü oluşturur bulmak için
  • --break-on-id derleyici bayrağı eklendi
  • util / dizin içeriğini gelişmiş organizasyon
  • sürüm numaraları hesaplanır şekilde değiştirdi / SVN tabanlı kullanıcılar için görüntülenen
  • görevle / iplik özgü modül kodu desteği eklendi
  • Her geçişte arasına tahsis AST sayılarını yazdırmak için bir yeteneği ekledi
  • --gdb derleyici için yeni bir gdb takma adı ekledi: 'loc' AST düğümün konumu
  • yazdırır
  • hata durumları önlemek için pragmas / bayraklar büyük ölçüde geliştirilmiş uygulama

  • Derleyici gereksiz dize karşılaştırmaları
  • kaldırıldı birkaç örneği
  • önişlemci sembolleri olarak uzaklaştırıldı hata eğilimli CHPL_TASKS kullanımı ve CHPL_THREADS
  • (sürümde dahil değildir) geliştiriciler için bestPractices belgelerine
  • eklendi
  • iç munging değişti '=' ve '==' 'ATAMA' ve sırasıyla 'EQUALS'
  • hataları AST kimliğini yazdırmak için print-id-on-yanılma geliştirici bayrağı eklendi
  • kontrol C ++ prototip katılığına geliştirilmiş
  • SVN ağacında (değil sürümde)
  • Dış katkıda anlaşmaları eklendi
  • derleyici tarafından kullanılan iç türleri kavramını ekledi değil kullanıcı

Benzer yazılım

HGL Suite
HGL Suite

17 Feb 15

Go
Go

27 Sep 15

Polyglot
Polyglot

2 Jun 15

CIL
CIL

20 Feb 15

Yorumlar Chapel

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!