Chapel

Software screenshot:
Chapel
Rincian Software:
Versi: 1.3.0 Pre-Alpha
Tanggal Upload: 11 May 15
Pengembang: Cray Inc.
Lisensi: Gratis
Popularitas: 12

Rating: nan/5 (Total Votes: 0)

Chapel adalah bahasa pemrograman paralel baru yang dikembangkan oleh Cray Inc. sebagai bagian dari program Produktivitas Tinggi Computing Sistem DARPA yang dipimpin (KBT). Chapel dirancang untuk meningkatkan produktivitas pengguna komputer high-end sementara juga melayani sebagai model pemrograman paralel portabel yang dapat digunakan pada cluster komoditas atau sistem multicore Desktop. Chapel berusaha untuk mampu meningkatkan programabilitas komputer paralel besar-besaran sembari menyamakan atau mengalahkan kinerja dan portabilitas model pemrograman saat ini seperti MPI.
Aplikasi Chapel mendukung model eksekusi multithreaded melalui abstraksi tingkat tinggi untuk paralelisme data, tugas paralelisme, konkurensi, dan bersarang paralelisme & nbsp;. Chapel tipe lokal memungkinkan pengguna untuk menentukan dan alasan tentang penempatan data dan tugas pada arsitektur target agar tune untuk wilayah. Chapel mendukung global tampilan agregat data dengan implementasi yang ditetapkan pengguna, yang memungkinkan operasi pada struktur data didistribusikan untuk diekspresikan dengan cara alami. Berbeda dengan banyak-tingkat yang lebih tinggi bahasa paralel sebelumnya, Chapel dirancang di sekitar sebuah filosofi multiresolusi, memungkinkan pengguna untuk awalnya menulis kode yang sangat abstrak dan kemudian secara bertahap tambahkan lebih detail sampai mereka sebagai dekat dengan mesin sebagai kebutuhan mereka butuhkan. Chapel mendukung penggunaan kembali kode dan prototyping cepat melalui desain berorientasi objek, inferensi tipe, dan fitur untuk pemrograman generik.
Chapel dirancang dari prinsip-prinsip pertama dan bukan dengan memperluas bahasa yang ada. Ini adalah blok-terstruktur bahasa imperatif, dirancang agar mudah untuk belajar bagi pengguna dari C, C ++, Fortran, Java, Perl, Matlab, dan bahasa populer lainnya. Sementara Chapel dibangun di atas konsep dan sintaks dari banyak bahasa sebelumnya, fitur paralel paling langsung dipengaruhi oleh ZPL, High-Performance Fortran (HPF), dan Cray MTA & perdagangan; / Cray XMT & trade; ekstensi untuk C dan Fortran

Apa yang baru dalam rilis ini:.

  • Highlights (lihat di bawah untuk rincian)
  • perpecahan 'def' kata kunci ke dalam 'proc' (untuk prosedur) dan 'iter' (untuk iterator)
  • (lihat '$ CHPL_HOME / util / mengkonversi-defs help' untuk bantuan memperbarui kode yang ada)
  • menambahkan 'direplikasi' distribusi dan peningkatan distribusi 'Blok-Cyclic'
  • (lihat & quot; Standard Distribusi & quot; di spec dan contoh / primer / distributions.chpl)
  • menambahkan lapisan tugas tunggal lokal untuk Nano ++ (BSC) dan Qthreads (Sandia)
  • (lihat doc / README.tasks)
  • pengerjaan ulang utama dari berbagai semantik dan implementasi
  • (lihat & quot; Perubahan Semantic / Perubahan Chapel Bahasa & quot; di bawah ini untuk detail)
  • dukungan awal untuk volatil jenis: bool, int, uint, nyata, imag
  • (lihat doc / technotes / README.volatile)
  • dukungan untuk consts extern dan kelas (pointer-ke-struct)
  • (lihat doc / technotes / README.extern)
  • meningkatkan dukungan untuk data paralelisme pada Cray XMT
  • perbaikan yang luas untuk kode sampel pada contoh / direktori
  • (lihat 'Contoh Kode' di bawah ini dan contoh / README)
  • menambahkan paling contoh kode dari spec untuk contoh / direktori baru
  • (lihat contoh / spesifikasi / *)
  • menambahkan catatan teknis yang menggambarkan ditetapkan pengguna peta domain antarmuka
  • (lihat doc / technotes / README.dsi)
  • update luas untuk spesifikasi bahasa
  • (lihat 'Dokumentasi' di bawah ini)
  • beberapa perbaikan pada tasking runtime dan lapisan komunikasi
  • (lihat & quot; Runtime Library Perubahan & quot; di bawah ini)
  • Sintaksis / Penamaan Perubahan
  • perpecahan 'def' kata kunci ke dalam 'proc' (untuk prosedur) dan 'iter' (untuk iterator)
  • (lihat '$ CHPL_HOME / util / mengkonversi-defs help' untuk bantuan memperbarui kode yang ada)
  • nama 'aritmatika' domain / array untuk 'persegi panjang' domain / array
  • menambahkan dukungan untuk floating literal titik bentuk '1.e ...'
  • (sebelumnya, hanya '1e ...' dan '1.0e ...' didukung)
  • Perubahan Semantic / Perubahan Chapel Bahasa
  • beberapa perbaikan untuk rentang (lihat 'Ranges' bab dalam bahasa spec):
  • menambahkan konsep keselarasan untuk menunjukkan Modulo keselarasan | langkah |
  • menambahkan operator 'menyelaraskan dan query untuk rentang untuk menentukan / query keselarasan
  • (misalnya, '1..10 oleh 3 menyelaraskan 2' = & gt; '2, 5, 8' sejak 2 == 5 == 8, mod 3)
  • didefinisikan == pada rentang segi urutan bilangan bulat yang mereka hasilkan
  • ident didefinisikan (r1, r2) untuk mengatakan apakah r1 dan r2 adalah semantik identik
  • didefinisikan '# k' untuk k & lt; 0 sebagai makna & quot; menghitung dari ujung rentang & quot;
  • menambahkan 'pertama', 'lalu', 'alignedLow,' metode alignedHigh 'untuk rentang
  • (misalnya, '1..10 oleh -2' = & gt; == pertama 10, == 2 lalu, alignedLow = 2, alignedHigh = 10)
  • menambahkan dukungan untuk berbagai fungsi berbagai permintaan baru
  • (misalnya, alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • menambahkan dukungan untuk stabil bool, int, uint, nyata, dan jenis imag
  • (lihat doc / technotes / README.volatile)
  • menambahkan end-of-file cek untuk jenis file
  • (mis., 'Sementara! Infile.eof ...')
  • dihapus dukungan untuk mengobati 'kembali' di iterator sebagai 'yield'
  • (misalnya, perubahan 'foo iter () {return x;}' untuk 'foo iter () {hasil x; return;}')
  • menambahkan dukungan untuk modul referensi tanpa terlebih dahulu 'use'-ing mereka
  • (misalnya, modul M1 {var x ...} modul M2 {... M1.x ...} sekarang hukum)
  • menambahkan query callStackSize dengan jenis lokal
  • (misalnya, 'here.callStackSize' mengembalikan ukuran panggilan stack di lokal saat ini)
  • dihapus koma sebelumnya-yang diperlukan dari akhir deklarasi enum
  • (misalnya, 'warna enum {merah, biru, hijau}' sekarang hukum; sebelumnya diperlukan ';')
  • menambahkan dukungan untuk trailing koma tunggal pada akhir daftar enum
  • (misalnya, 'warna enum {merah, biru, hijau,}' sekarang hukum)
  • dihapus dukungan untuk +/- operator pada domain persegi panjang; menggunakan menerjemahkan ()
  • Baru Diterapkan Fitur
  • dilaksanakan == /! = Untuk persegi panjang, asosiatif, dan domain jarang
  • Standard Distribusi
  • menambahkan pertama-rancangan 'direplikasi' distribusi untuk menyimpan data berlebihan
  • (lihat contoh / primer / distributions.chpl)
  • ditingkatkan 'Blok-Cyclic', cukup untuk melaksanakan dengan benar HPCC PTRANS dan HPL
  • (lihat contoh / HPCC / ptrans.chpl, hpl.chpl; contoh / primer / distributions.chpl)
  • dihapus redundansi dalam spesifikasi iterator pemimpin antara domain / array
  • Modul Standar
  • menambahkan INFINITY dan NAN konstanta ke modul Math.chpl
  • (lihat 'Matematika' bawah & quot; Standard Modul & quot; dalam spesifikasi bahasa)
  • menambahkan isinf () dan isfinite () rutinitas tes untuk modul Math.chpl
  • (lihat 'Matematika' bawah & quot; Standard Modul & quot; dalam spesifikasi bahasa)
  • menambahkan setengah lusin lebih rutin ke modul GMP.chpl
  • Dokumentasi
  • menambahkan catatan teknis baru menggambarkan ditetapkan pengguna peta domain antarmuka
  • (lihat doc / technotes / README.dsi)
  • membuat banyak perbaikan untuk spesifikasi bahasa
  • revisi utama untuk bab Domain untuk meningkatkan kejelasan / akurasi
  • membaik dan struktur terpadu Records dan Kelas bab
  • revisi utama ke Domain Maps bab untuk meningkatkan kejelasan / akurasi
  • kode bernama contoh untuk memberikan referensi silang untuk contoh / spesifikasi / program
  • mengklarifikasi legalitas label / istirahat / melanjutkan loop paralel
  • diperbarui deskripsi membaca [ln] / menulis [ln]
  • tetap beberapa masalah di bidang berkas memesan
  • diformat ulang spesifikasi sebagai 'buku' di LaTeX
  • berbagai perbaikan minor dari kesalahan ketik / kesalahan
  • definisi ditingkatkan / deskripsi dari beberapa istilah
  • menambahkan dokumentasi locale.name
  • dan banyak perubahan lain ...
  • diperbarui dokumen referensi cepat untuk memasukkan def-& gt; proc / perubahan iter, menyelaraskan op
  • .
  • menulis ulang / direorganisasi README.extern untuk memperjelas penjelasan dan membawa up-to-date
  • menambahkan README menjelaskan pernyataan 'lokal' (doc / technotes / README.local)
  • menambahkan README menjelaskan jenis yang mudah menguap (doc / technotes / README.volatile)
  • diperbarui README.comm-diagnosa menyebutkan statistik garpu cepat
  • diperbarui berbagai file README
  • Contoh Kode
  • ditempatkan paling contoh kode dari spesifikasi bahasa. untuk spesifikasi baru / subdirektori
  • meningkatkan primer / direktori:
  • menambahkan primer baru untuk menggunakan prosedur (primer / procedures.chpl)
  • menambahkan primer dasar untuk domain (primer / domains.chpl)
  • berganti nama menjadi lokal Primer locales.chpl dan ditingkatkan itu
  • meningkatkan distribusi primer dan menambahkan penggunaan Blok-siklik dan direplikasi
  • diperbarui kisaran primer (primer / range.chpl)
  • meningkatkan iterator primer (primer / iterators.chpl)
  • meningkatkan pengurangan primer (primer / reductions.chpl)
  • menambahkan getCurrentTime () untuk timer primer (primer / timers.chpl)
  • menambahkan deskripsi jenis alias dan jenis konfigurasi untuk variabel primer
  • (lihat primer / variables.chpl)
  • ditingkatkan direktori HPCC / benchmark
  • menambahkan versi pertama HPCC PTRANS untuk HPCC / direktori (ptrans.chpl)
  • menambahkan versi bersih dari HPCC HPL untuk HPCC / direktori (hpl.chpl)
  • menambahkan varian / subdirektori untuk contoh / HPCC menunjukkan pendekatan lain
  • menambahkan aliran-promoted.chpl menunjukkan penggunaan promosi di dunia STREAM Triad
  • menambahkan ra-cleanloop.chpl menunjukkan bersih (namun saat ini lebih lambat) kernel RA
  • ditingkatkan contoh top-level:
  • nama yang ada & quot; halo, dunia & quot; contoh untuk menyarankan agar membaca logis
  • (lihat contoh / halo * .chpl)
  • menambahkan Data data paralel dan terdistribusi paralel halo, contoh dunia
  • (lihat contoh / hello3-datapar.chpl, contoh / hello4-datapar-dist.chpl)
  • menambahkan komentar ke berbagai halo, contoh dunia (contoh / halo * .chpl)
  • diperbarui semua contoh untuk semantik bahasa saat
  • menggunakan 'proc' / 'iter' daripada 'def'
  • update untuk mencerminkan semantik berbagai baru
  • -Platform spesifik Catatan
  • untuk Cray XT / Cray XE, meningkatkan aprun dan pbs-aprun peluncur
  • (lihat & quot; & quot catatan Launcher-spesifik; bawah)
  • untuk Cray XMT, menambahkan dukungan untuk loop paralel atas rentang
  • untuk Cray XMT, menambahkan generasi noalias pragmas untuk forall variabel lingkaran
  • menambahkan dukungan untuk MareNostrum BSC termasuk dokumen dan sebuah peluncur khusus
  • (lihat doc / platform / README.marenostrum)
  • Launcher khusus catatan
  • menambahkan opsi-peluncur khusus untuk --help kemampuan
  • ditingkatkan penyebaran kode status keluar melalui peluncur
  • berubah peluncur untuk mendukung exec berbasis (bukan sistem berbasis) perintah
  • membuat peluncur menggunakan 'unlink' daripada sistem ('rm') untuk menghapus file-file sementara
  • menambahkan launcher untuk BSC MareNostrum
  • mengurangi jumlah file-file sementara yang digunakan untuk menangkap output 'sistem' perintah
  • aprun perbaikan peluncur:
  • menambahkan bendera --cc untuk menentukan tugas CPU w / di node
  • menambahkan bendera -q untuk menjalankan peluncur dalam mode diam
  • menambahkan kemampuan men-debug melalui CHPL_LAUNCHER_DEBUG untuk menyimpan file tmp sekitar
  • pbs-aprun perbaikan peluncur:
  • menambahkan bendera --cc untuk menentukan tugas CPU w / di node
  • menambahkan kemampuan men-debug melalui CHPL_LAUNCHER_DEBUG untuk menyimpan file tmp sekitar
  • dibersihkan keluaran untuk menyingkirkan beberapa cetak asing
  • dukungan peluncur membuat kami sistem pengujian
  • menambahkan --walltime dan bendera --queue untuk peluncur sebagai alternatif untuk Env. vars.
  • Compiler Perubahan
  • membuat cetak compiler 'benar' / 'palsu' dalam jenis tanda tangan daripada 1/0
  • menambahkan config param 'noRefCount' untuk menonaktifkan referensi menghitung (mungkin bocor memori)
  • Flags Compiler
  • menambahkan bendera --print-callstack-on-kesalahan untuk menunjukkan apa menyebabkan panggilan yang buruk
  • menambahkan bendera --no-codegen untuk melewatkan kode generasi dan menghubungkan fase
  • Interoperabilitas Perubahan
  • menambahkan dukungan untuk extern C & quot; kelas & quot; (Pointer-ke-struct jenis)
  • menambahkan dukungan untuk consts extern (lihat README.extern)
  • Perbaikan Pesan Kesalahan
  • menambahkan peringatan yatim 'menggunakan' pernyataan di luar modul menyatakan
  • (misalnya, 'menggunakan M1; modul M2 {}' biasanya harus 'modul M2 {penggunaan M1;}')
  • membuat pesan kesalahan parse-waktu menggunakan standar 'nama file: lineno:' Format
  • dihasilkan pesan kesalahan untuk merujuk ke nama kelas dalam metode utama
  • (misalnya, 'kelas C {def Cm () {...}}' sekarang menghasilkan pesan error)
  • Perbaikan Bug / New Cek Semantic (untuk semantik lama)
  • dicegah jenis konfigurasi dari yang ditetapkan menggunakan bendera waktu eksekusi baris perintah
  • tetap kemampuan compiler untuk menangani serikat tanpa bidang
  • tetap pengurangan minloc / maxloc untuk menangani kosong rentang / subranges nilai
  • tetap bug di mana 'jalan' argumen untuk konstruktor berkas diabaikan
  • membuat serikat kosong bekerja dengan benar
  • tetap masalah meluap di chunking up rentang untuk distribusi / paralelisasi
  • tetap bug yang melibatkan dukungan untuk kosong jenis catatan ekstern
  • tetap bug yang melibatkan fungsi extern yang kembali catatan
  • tetap bug yang terkait dengan menyalin catatan eksternal
  • pelaksanaan tetap +/- operator di asosiatif / domain jarang
  • tetap bug yang berkaitan dengan nama-nama modul berbasis nama file yang berisi beberapa 'ini.
  • Pesan menambahkan kesalahan untuk memperluas / eksterior / interior pada domain yang tidak teratur
  • menambahkan kesalahan untuk konstruktor / destructors dengan tipe kembali ditentukan
  • tetap sepasang bug yang berkaitan dengan 'cepat pada' optimasi
  • menambahkan cek terhadap pembangunan kelas tanpa menentukan bidang generik
  • Perubahan Kemasan
  • menambahkan kode stabilo sintaks untuk GNU sumber-highlight
  • (lihat etc / sumber-highlight / README)
  • ditingkatkan emacs mewarnai dukungan untuk versi 22.x
  • (lihat etc / emacs / README)
  • update vim pewarnaan sintaks untuk mencerminkan baru 'proc' / kata kunci 'iter'
  • (lihat etc / vim / README)
  • menambahkan script untuk mengubah 'penggunaan' kode yang ada def 'ke' iter '/' proc '
  • (lihat $ CHPL_HOME / util / mengkonversi-defs)
  • dihapus contoh multirealm & dokumentasi untuk saat ini
  • Perangkat Lunak Pihak Ketiga Perubahan
  • diperbarui ke versi 1.16.1 GASNet
  • menambahkan salinan BSC Nano ++ dan Sandia Qthreads
  • (lihat pihak ketiga / README)
  • membuat-install pasca langkah untuk GASNet yang mengubah path mutlak untuk relatif
  • PVM dihapus untuk sementara waktu karena ketidakstabilan
  • Runtime Library Perubahan
  • menambahkan lapisan tugas tunggal lokal untuk Nano ++ (BSC) dan Qthreads (Sandia)
  • beberapa perbaikan lapisan runtime tasking:
  • menambahkan antarmuka baru untuk memiliki chpl_main lapisan tasking panggilan ()
  • berubah tasking fungsi init untuk mengambil maxThreadsPerLocale / callStackSize args
  • menambahkan kemampuan tugas yield untuk antarmuka lapisan tasking
  • ditingkatkan kode runtime untuk menghindari menggunakan sync vars sebelum menginisialisasi tasking
  • dihapus bentuk makro-terwujud dari tasking antarmuka; menggunakan nama standar bukannya
  • penamaan terpadu dari semua rutinitas lapisan tugas untuk chpl_sync _ * () dan chpl_task _ * ()
  • persyaratan dihapus untuk mengimplementasikan antarmuka variabel tunggal
  • pemutusan pindah benang dari lapisan tasking FIFO untuk pthreads threading
  • pelaksanaan disederhanakan variabel sync di lapisan pthread threading
  • pindah jawab untuk jumlah benang dari tasking FIFO ke pthread threading
  • beberapa perbaikan pada lapisan komunikasi runtime:
  • direstrukturisasi antarmuka komunikasi untuk mendukung panjang / jenis argumen
  • menambahkan sebuah antarmuka untuk non-blocking mendapatkan operasi untuk comm tersebut. antarmuka
  • bersatu semua terpencil mendapatkan operasi menggunakan CHPL_COMM_GET () makro
  • refactored / berganti nama header antarmuka komunikasi
  • Sistem Pengujian
  • jauh lebih baik pengujian kinerja dan kemampuan grafik
  • (lihat komentar di depan start_test untuk dokumentasi)
  • meningkatkan dukungan sistem pengujian untuk membersihkan setelah itu sendiri
  • menambahkan kemampuan untuk menghindari menggunakan tipuan dari stdin
  • menambahkan opsi untuk memberikan pilihan prediff seluruh sistem
  • menambahkan kemampuan untuk menggunakan fitur timeout asli peluncur daripada Python
  • meningkatkan bagaimana sistem pengujian membunuh tes yang kali keluar
  • tetap bug di mana file .preexec hanya bekerja jika '.' berada di jalan Anda
  • internal
  • menambahkan bendera compiler --break-on-id untuk pengembang untuk mencari AST simpul menciptakan
  • ditingkatkan organisasi isi util / direktori
  • mengubah cara nomor versi dihitung / ditampilkan untuk pengguna SVN berbasis
  • menambahkan dukungan untuk tugas- /-benang khusus kode modul
  • menambahkan kemampuan untuk mencetak jumlah AST dialokasikan antara masing-masing lulus
  • menambahkan gdb alias baru untuk compiler --gdb: 'loc' mencetak AST node lokasi
  • sangat meningkat pelaksanaan pragmas / bendera untuk menghindari kasus kesalahan
  • dihapus beberapa contoh perbandingan string yang tidak perlu di compiler
  • dihapus penggunaan rawan kesalahan dari CHPL_TASKS dan CHPL_THREADS sebagai simbol preprocessor
  • menambahkan bestPractices dokumentasi untuk pengembang (tidak termasuk dalam rilis)
  • berubah munging internal '=' dan '==' ke 'ASSIGN' dan 'SAMA DENGAN' masing-masing
  • menambahkan bendera pengembang --print-id-on-error untuk mencetak AST ID pada kesalahan
  • meningkatkan ketatnya C ++ prototipe memeriksa
  • menambahkan perjanjian kontributor eksternal untuk pohon SVN (tidak dalam rilis)
  • menambahkan gagasan jenis internal yang digunakan oleh compiler tetapi tidak pengguna

Software yang serupa

Gauche
Gauche

14 Apr 15

Vala
Vala

16 Aug 18

Komentar untuk Chapel

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!