Chapel

Screenshot Software:
Chapel
Mga detalye ng Software:
Bersyon: 1.3.0 Pre-Alpha
I-upload ang petsa: 11 May 15
Nag-develop: Cray Inc.
Lisensya: Libre
Katanyagan: 12

Rating: nan/5 (Total Votes: 0)

Chapel ay isang bagong wika parallel programming na binuo sa pamamagitan Cray Inc. bilang bahagi ng DARPA-humantong program High Produktibo Computing Systems (HPCS). Chapel ay dinisenyo upang mapagbuti ang produktibo ng mga high-end mga gumagamit ng computer habang naglilingkod din bilang isang portable parallel programming na modelo na maaaring magamit sa mga kumpol ng kalakal o desktop multicore system. Chapel Nagsusumikap upang napakalaki mapabuti ang programmability ng malakihan kahilera computer habang pagtutugma o matalo ang pagganap at maaaring dalhin ng mga kasalukuyang modelo ng programming tulad ng MPI.
Sinusuportahan ng Chapel app isang multithreaded pagpapatupad modelo sa pamamagitan ng abstractions high-level para parallelism data, gawain paralelismo, concurrency, at nested parallelism. & Nbsp; ay nagbibigay-daan type locale Chapel ni gumagamit na tukuyin at dahilan tungkol sa paglalagay ng data at mga gawain sa isang target na architecture sa order upang ibagay para sa lokalidad. Sumusuporta sa Chapel global-view pinagsamasamang data sa pagpapatupad na tinukoy ng gumagamit, na nagpapahintulot sa mga operasyon sa ibinahagi istruktura ng data na ipinahayag sa isang natural na paraan. Sa kaibahan sa maraming nakaraang mga parallel na wika mas mataas na antas, Chapel ay dinisenyo sa paligid ng isang multiresolution pilosopiya, na nagpapahintulot sa mga user na una isulat ang tunay na mahirap unawain code at pagkatapos ay tinataas magdagdag ng higit pang mga detalye hanggang sila bilang malapit sa makina bilang nangangailangan ng kanilang mga pangangailangan. Sumusuporta sa Chapel code muli at sunud prototyping pamamagitan object-oriented disenyo, uri ng pagkakilala, at mga tampok para sa mga generic programming.
Chapel ay dinisenyo mula sa unang prinsipyo sa halip na sa pamamagitan ng pagpapalawak ng mga umiiral na wika. Ito ay isang kinakailangan block-balangkas na wika, na idinisenyo upang maging madaling matuto para sa mga gumagamit ng C, C ++, Fortran, Java, Perl, Matlab, at iba pang mga tanyag na mga wika. Habang Chapel dagdag sa mga konsepto at syntax mula sa maraming nakaraang mga wika, nito parallel na tampok ay ang pinaka-direktang naiimpluwensyahan ng ZPL, High-Performance Fortran (HPF), at ang Cray MTA & trade; / Cray XMT & trade; extension sa C at Fortran

Ano ang bago sa release na ito.

  • Highlight (tingnan sa ibaba para sa mga detalye)
  • split 'def' keyword sa 'proc' (para sa mga pamamaraan) at 'iter' (para iterators)
  • (tingnan ang '$ CHPL_HOME / util / convert-defs help' para sa tulong update ang mga umiiral code)
  • idinagdag 'Replicated' pamamahagi at pinabuting 'Block-cyclic' pamamahagi
  • (tingnan ang & quot; Standard distribusyon & quot; sa spec at mga halimbawa / primers / distributions.chpl)
  • idinagdag single-locale gawain layer para sa Nanos ++ (BSC) at Qthreads (Sandia)
  • (tingnan doc / README.tasks)
  • major reworking ng hanay semantics at pagpapatupad
  • (tingnan ang & quot; semantiko Pagbabago / Pagbabago sa Chapel Wika & quot; sa ibaba para sa detalye)
  • paunang suporta para sa mga salawahan uri: bool, int, uint, real, imag
  • (tingnan doc / technotes / README.volatile)
  • suporta para extern consts at mga klase (payo-to-structs)
  • (tingnan doc / technotes / README.extern)
  • pinahusay na suporta para sa parallelism ng data sa Cray XMT
  • malawak na mga pagpapabuti sa mga sample code sa mga halimbawa / directory
  • (tingnan 'Halimbawa code' sa ibaba at ang mga halimbawa / Readme)
  • idinagdag karamihan sa mga halimbawa ng code mula sa spec sa isang bagong halimbawa / directory
  • (tingnan ang mga halimbawa / spec / *)
  • nagdagdag ng isang teknikal na tandaan na naglalarawan ng mga interface ng mapa domain tinukoy ng gumagamit na
  • (tingnan doc / technotes / README.dsi)
  • malawak na mga update sa mga detalye ng wika
  • (tingnan ang 'Documentation' sa ibaba)
  • ilang mga pagpapabuti sa runtime tasking at layers komunikasyon
  • (tingnan ang & quot; Runtime Library Pagbabago & quot; sa ibaba)
  • Sintaktik / Naming Pagbabago
  • split 'def' keyword sa 'proc' (para sa mga pamamaraan) at 'iter' (para iterators)
  • (tingnan ang '$ CHPL_HOME / util / convert-defs help' para sa tulong update ang mga umiiral code)
  • pinalitan 'arithmetic' domain / arrays sa 'parihabang' domain / arrays
  • idinagdag na suporta para sa mga lumulutang point literals ng form '1.e ...'
  • (dati, '1e ...' lamang at '1.0e ...' ay suportado)
  • semantiko Pagbabago / Pagbabago sa Chapel Wika
  • ilang mga pagpapabuti sa mga saklaw (tingnan ang 'Hanay' kabanata sa wika spec):
  • nagdagdag ng isang konsepto ng alignment upang ipahiwatig ang isang pagkakahanay modulo | sumaklang |
  • nagdagdag ng isang 'align' operator at query sa saklaw na tukuyin / alignment query
  • (eg, '1..10 sa pamamagitan ng 3 align 2' = & gt; '2, 5, 8' dahil 2 == 5 == 8, mod 3)
  • tinukoy == sa saklaw sa mga tuntunin ng integer sequences makabuo sila
  • tinukoy ident (r1, r2) upang sabihin kung r1 at r2 ay semantically magkapareho
  • tinukoy '# k' para sa k & lt; 0 bilang kahulugan ng & quot; bibilangin mula sa dulo ng hanay na & quot;
  • idinagdag 'unang', 'huling', 'alignedLow,' pamamaraan alignedHigh 'to saklaw
  • (eg, '1..10 pamamagitan -2' = & gt; unang == 10, huling == 2, alignedLow = 2, alignedHigh = 10)
  • idinagdag na suporta para sa isang iba't ibang mga bagong pag-andar query hanay
  • (eg, alignLow (), hasFirst (), hasLowBound (), isAligned (), boundsCheck () ...)
  • idinagdag na suporta para salawahan bool, int, uint, real, at mga uri ng imag
  • (tingnan doc / technotes / README.volatile)
  • nagdagdag ng isang check end-of-file na ang uri ng file
  • (hal., 'Habang! Infile.eof ...')
  • dahil ang suporta para sa pagpapagamot ng 'return' sa iterator bilang isang 'ani'
  • (eg, baguhin 'iter foo () {return x;}' sa 'iter foo () {ani x; return;}')
  • nagdagdag ng suporta sa mga sanggunian ng mga module na walang unang 'use'-ing ito
  • (eg, module M1 {var x ...} module M2 {... M1.x ...} ngayon ay legal)
  • nagdagdag ng isang callStackSize query sa uri locale
  • (eg, 'here.callStackSize' nagbabalik ang laki stack ng tawag sa kasalukuyang locale)
  • inalis ang dati-kinakailangang semicolon mula sa dulo ng enum pahayag
  • (eg, 'kulay enum {pula, asul, berde}' ay ngayon legal; dati na kailangan ';')
  • idinagdag na suporta para sa isang solong trailing comma sa dulo ng listahan ng enum
  • (eg, 'kulay enum {pula, asul, berde,}' ay legal na ngayon)
  • dahil suporta para +/- operator sa parihabang domain; gamitin isalin ()
  • Bagong Ipinatupad Features
  • ipinatupad == /! = Para parihaba, uugnay, at kalat-kalat na mga domain
  • Standard distribusyon
  • nagdagdag ng isang first-draft 'Replicated' pamamahagi para sa pagtatago ng data redundantly
  • (tingnan ang mga halimbawa / primers / distributions.chpl)
  • pinabuting 'Block-cyclic', sapat upang ipatupad ng tama HPCC PTRANS at HPL
  • (tingnan ang mga halimbawa / HPCC / ptrans.chpl, hpl.chpl; halimbawa / primers / distributions.chpl)
  • dahil kalabisan sa detalye ng leader iterators pagitan ng mga domain / arrays
  • Standard Module
  • idinagdag INFINITY at NAN constants sa module Math.chpl
  • (tingnan ang 'Math' sa ilalim ng & quot; Standard Module & quot; sa wikang spec)
  • idinagdag isinf () at isfinite () pagsubok na gawain sa module Math.chpl
  • (tingnan ang 'Math' sa ilalim ng & quot; Standard Module & quot; sa wikang spec)
  • nagdagdag ng kalahating dosenang mga karagdagang mga gawain sa module GMP.chpl
  • Documentation
  • nagdagdag ng isang bagong teknikal na tandaan na naglalarawan ng mga interface ng mapa domain tinukoy ng gumagamit na
  • (tingnan doc / technotes / README.dsi)
  • na ginawa ng maraming mga pagpapabuti sa wika detalye
  • pangunahing pagbabago sa kabanata Domains upang mapabuti ang kaliwanagan / kawastuhan
  • pinabuting at pinag istraktura ng Records at Classes kabanata
  • pangunahing pagbabago sa kabanata Domain Maps upang mapabuti ang kaliwanagan / kawastuhan
  • pinangalanang Halimbawa code upang magbigay ng cross-reference sa mga halimbawa / spec / programa
  • nilinaw sa legalidad ng label / break / magpatuloy sa parallel loop
  • update ang paglalarawan ng read [ln] / isulat ang [ln]
  • naayos ng ilang mga problema sa mga patlang ng file sa pag-order
  • reformatted ang detalye bilang isang 'book' sa LaTeX
  • iba't-ibang mga menor de edad pag-aayos ng mga typo / pagkakamali
  • pinabuting kahulugan / paglalarawan ng ilang mga termino
  • idinagdag babasahin ng locale.name
  • at marami pang ibang mga pagbabago ...
  • update sa mabilis na reference na dokumento upang isama def- & gt; proc / iter pagbabago, ihanay op
  • .
  • rewrote / reorganised README.extern upang linawin paliwanag at magdala ng up-to-date
  • nagdagdag ng isang Readme naglalarawan ng 'lokal' statement (doc / technotes / README.local)
  • nagdagdag ng isang Readme naglalarawan salawahan uri (doc / technotes / README.volatile)
  • update README.comm-diagnostic na banggitin mabilis tinidor statistics
  • update ng iba't-ibang Readme file
  • Halimbawa code
  • inilagay karamihan sa mga halimbawa ng code mula sa wikang spec. sa isang bagong spec / subdirectory
  • pinabuting ang primers / directory:
  • nagdagdag ng isang bagong panimulang aklat para sa paggamit ng mga pamamaraan (primers / procedures.chpl)
  • nagdagdag ng isang pangunahing panimulang aklat para sa mga domain (primers / domains.chpl)
  • pinalitan ng pangalan ang mga locale panimulang aklat sa locales.chpl at pinahusay na ito
  • pinabuting ang distribusyon panimulang aklat at idinagdag Block-cyclic at Replicated gumagamit
  • update ang hanay panimulang aklat (primers / range.chpl)
  • pinabuting ang iterators panimulang aklat (primers / iterators.chpl)
  • pinabuting ang kabawasan panimulang aklat (primers / reductions.chpl)
  • idinagdag getCurrentTime () upang ang timer panimulang aklat (primers / timers.chpl)
  • naidagdag na paglalarawan ng mga uri ng mga alias at mga uri config sa mga variable na panimulang aklat
  • (tingnan primers / variables.chpl)
  • pinabuting direktoryo HPCC / huwaran
  • idinagdag unang bersyon ng HPCC PTRANS sa HPCC / directory (ptrans.chpl)
  • idinagdag cleaner bersyon ng HPCC HPL na HPCC / directory (hpl.chpl)
  • Nagdagdag ng variants / subdirectory sa mga halimbawa / HPCC sa eksibit iba pang mga pamamaraang
  • idinagdag stream-promoted.chpl upang ipakita ang paggamit ng promosyon sa global STREAM Triad
  • idinagdag ra-cleanloop.chpl upang ipakita cleaner (ngunit sa kasalukuyan mas mabagal) RA kernel
  • pinabuting mga halimbawa nangungunang antas:
  • pinalitan umiiral & quot; hello, mundo & quot; mga halimbawa upang magmungkahi ng isang lohikal na pagkakasunod-sunod ng pagbabasa
  • (tingnan ang mga halimbawa / hello * .chpl)
  • idinagdag data parallel parallel at ipinamamahagi data hello, halimbawa mundo
  • (tingnan ang mga halimbawa / hello3-datapar.chpl, mga halimbawa / hello4-datapar-dist.chpl)
  • nagdagdag ng mga komento sa mga iba't ibang hello, halimbawa mundo (halimbawa / hello * .chpl)
  • update lahat ng mga halimbawa sa kasalukuyang semantics wika
  • gumamit ng 'proc' / 'iter' sa halip na 'def'
  • update upang sumalamin sa bagong semantics hanay
  • Mga tala Platform-tiyak
  • para Cray XT / Cray XE, pinabuting ang aprun at pbs-aprun launcher
  • (tingnan ang & quot; Launcher-specific notes & quot; sa ibaba)
  • para Cray XMT, nagdagdag ng suporta para sa parallel loop sa paglipas ng mga saklaw
  • para Cray XMT, idinagdag na henerasyon ng noalias pragmas sa forall loop variable
  • idinagdag na suporta para MareNostrum BSC kabilang docs at isang espesyal na launcher
  • (tingnan doc / platform / README.marenostrum)
  • Launcher-specific tala
  • idinagdag opsyon launcher-tiyak sa help kakayahan
  • pinabuting pagpapalaganap ng mga code ng katayuan exit sa pamamagitan ng launcher
  • nagbago launcher upang suportahan exec-based (sa halip na system na nakabatay) command
  • ginawa launcher gamitin ang 'unlink' sa halip na system ('rm') upang tanggalin ang pansamantalang mga file
  • nagdagdag ng isang launcher para sa BSC ni MareNostrum
  • pinababang bilang ng mga pansamantalang mga file na ginamit upang makuha ang output ng 'system' command
  • aprun pagpapabuti launcher:
  • nagdagdag ng isang --cc bandila upang tukuyin ang CPU assignment w / sa loob ng node
  • nagdagdag ng q bandila upang patakbuhin ang mga launcher sa tahimik na mode
  • idinagdag kakayahan debug pamamagitan CHPL_LAUNCHER_DEBUG upang panatilihin tmp file sa paligid
  • pbs-aprun pagpapabuti launcher:
  • nagdagdag ng isang --cc bandila upang tukuyin ang CPU assignment w / sa loob ng node
  • idinagdag kakayahan debug pamamagitan CHPL_LAUNCHER_DEBUG upang panatilihin tmp file sa paligid
  • clean up output upang magtanggal ng ilang labis na printing
  • ginawa launcher support aming system testing
  • idinagdag --walltime at --queue flags sa launcher bilang alternatibo sa env. vars.
  • Compiler Pagbabago
  • ginawa ang compiler print 'true' / 'false' out sa uri ng lagda sa halip na 1/0
  • idinagdag config param 'noRefCount' upang huwag paganahin reference bilangin (maaaring mabunyag memory)
  • Flags Compiler
  • nagdagdag ng isang --print-callstack-on-error bandila upang ipakita kung ano ang humantong sa isang masamang tawag
  • nagdagdag ng isang --no-codegen bandila upang laktawan ang mga code na henerasyon at pag-link phase
  • Interoperability Pagbabago
  • idinagdag na suporta para extern C & quot; mga klase & quot; (Pointer-to-struct uri)
  • idinagdag na suporta para extern consts (tingnan README.extern)
  • Pagpapabuti ng Mensahe Error
  • nagdagdag ng babala naulila 'paggamit' pahayag sa labas ng ipinahayag modules
  • (eg, 'gamitin M1; module M2 {}' ay dapat ay karaniwang maging 'module M2 {paggamit M1;}')
  • ginawa mensahe ng error na parse-time gamitin ang standard 'filename: lineno:' format
  • nakabuo ng isang mensaheng error para sa pagsangguni sa isang pangalan ng klase sa isang pangunahing paraan
  • (eg, 'class C {def Cm () {...}}' ngayon ay bumubuo ng isang error na mensahe)
  • Pag-aayos ng Bug / New semantiko mga tseke (para sa lumang semantics)
  • pumigil uri config mula sa pagtakda gamit pagpapatupad ng panahon command-line flag
  • naayos na kakayahan ang tagatala upang hawakan unyon na walang patlang
  • naayos na ang minloc / maxloc kabawasan sa hawakan laman saklaw / subranges ng mga halaga
  • taning ng isang bug kung saan ang 'path' argument sa constructor file ay hindi pinansin
  • ginawa gumana nang tama walang laman unyon
  • naayos ng isyu apaw sa asiwa up saklaw para sa pamamahagi / parallelization
  • taning ng isang bug na kinasasangkutan ng suporta para sa mga walang laman na extern uri record
  • taning ng isang bug na kinasasangkutan extern function na bumalik records
  • taning ng isang bug na may kaugnayan sa pagkopya ng mga panlabas na mga talaan ng
  • naayos na pagpapatupad ng +/- operator sa uugnay / kalat-kalat na mga domain
  • taning ng isang bug na may kaugnayan sa filename-based pangalan module na naglalaman ng maramihang mga 'ni.
  • mensahe idinagdag error para palawakin / panlabas / panloob sa irregular domain
  • nagdagdag ng isang error para sa constructor / destructors may isang tinukoy na uri ng bumalik
  • naayos ng isang pares ng mga bug na may kaugnayan sa 'mabilis sa' optimization
  • nagdagdag ng isang tseke laban sa paggawa sa mga klase nang hindi tinutukoy ang mga generic na mga patlang
  • Mga Pagbabago Packaging
  • idinagdag syntax highlighter code para GNU source-highlight
  • (tingnan etc / source-highlight / Readme)
  • pinabuting emacs pangkulay suporta para sa bersyon 22.x
  • (tingnan etc / emacs / Readme)

  • / 'Iter' mga keyword
  • update sa kalakasan syntax pangkulay upang sumalamin bagong 'proc'
  • (tingnan etc / kalakasan / Readme)
  • nagdagdag ng isang script para mapalitan ang 'paggamit ng' umiiral na code ng def 'sa' iter '/' proc '
  • (tingnan $ CHPL_HOME / util / convert-defs)
  • dahil multirealm halimbawa at babasahin para sa oras
  • Third-Party Software Mga Pagbabago
  • update GASNet sa bersyon 1.16.1
  • idinagdag kopya ng Nanos BSC ni ++ at Sandia Qthreads
  • (tingnan ang mga third-party / Readme)
  • na ginawa ng isang post-install na hakbang para GASNet na ang mga pagbabago lubos na landas sa mga kamag-anak
  • dahil PVM para sa oras dahil sa katatagan
  • Runtime Library Pagbabago
  • idinagdag single-locale gawain layer para sa Nanos ++ (BSC) at Qthreads (Sandia)
  • ilang mga pagpapabuti sa layer runtime tasking:
  • nagdagdag ng isang bagong interface para sa pagkakaroon ng chpl_main tasking layer ng tawag ()
  • nagbago tasking init na function na kumuha maxThreadsPerLocale / callStackSize args
  • Nagdagdag ng kakayahan na gawain na ani sa interface tasking layer
  • pinabuting runtime code upang maiwasan ang paggamit sync vars bago Sinisimulan tasking
  • dahil macro-ized form ng tasking interface; gamit ang standard na mga pangalan sa halip
  • pinag pagbibigay ng pangalan ng lahat ng mga gawain ng gawain layer upang chpl_sync _ * () at chpl_task _ * ()
  • dahil kinakailangan upang ipatupad ang mga single variable interface
  • inilipat pagwawakas ng thread mula fifo tasking layer upang pthreads threading
  • pinasimple na pagpapatupad ng mga variable sync sa layer pthread threading
  • inilipat ang responsibilidad para sa mga mabibilang na thread mula fifo tasking na pthread threading
  • ilang mga pagpapabuti sa layer runtime komunikasyon:
  • restructured ang komunikasyon interface upang suportahan ang argumento haba / type
  • nagdagdag ng isang interface para sa mga di-blocking makakuha operations sa comm. interface
  • pinag lahat ng remote makakuha operations gamitin CHPL_COMM_GET () macro
  • refactored / pinalitan ng pangalan ang mga header ng komunikasyon interface
  • System Testing
  • malaking-malaki pinabuting ang pagganap ng pagsubok at mga kakayahan graphing
  • (tingnan ang mga komento sa harap ng start_test para sa dokumentasyon)
  • pinahusay na suporta ng sistema ng pagsusuri para sa paglilinis up pagkatapos mismo
  • idinagdag kakayahan upang iwasan ang paggamit ng anumang kawalang-tapat ng stdin
  • nagdagdag ng isang opsyon upang magbigay ng isang option prediff system-wide
  • idinagdag kakayahan upang gamitin ang native na tampok timeout isang launcher halip na sawa na
  • pinabuting paano pumapatay sa sistema ng pagsusuri ng isang pagsubok na beses sa labas
  • taning ng isang bug kung saan .preexec file lamang nagtrabaho kung '.' ay sa iyong landas
  • Internal
  • nagdagdag ng isang --break-on-id compiler flag para sa mga developer upang hanapin AST node lumilikha
  • pinabuting organisasyon ng mga nilalaman util / directory
  • binago ang paraan ng numero ng bersyon ay nakalkula / ipapakita para-based SVN mga user
  • idinagdag na suporta para task- / thread-specific module code
  • Nagdagdag ng kakayahan upang i-print ang mga mabibilang AST ilalaan sa pagitan ng bawat pass
  • nagdagdag ng isang bagong gdb alias na compiler --gdb: 'loc' kopya ng isang AST node lokasyon
  • lubhang pinabuting pagpapatupad ng pragmas / flags upang maiwasan ang mga kaso error
  • dahil sa ilang mga pangyayari ng mga hindi kailangang mga string paghahambing sa compiler
  • dahil sa error na paggamit ng CHPL_TASKS at CHPL_THREADS bilang simbolo preprocessor
  • idinagdag babasahin bestPractices para sa mga developer (hindi kasama sa release)
  • nagbago internal munging ng '=' at '==' sa 'Magtalaga ng' at 'ay katumbas ng' ayon sa pagkakabanggit
  • nagdagdag ng isang --print-id-on-error bandila developer upang i-print AST ID sa mga error
  • pinabuting ang katumpakan ng C ++ tularan pagsuri
  • idinagdag panlabas contributor kasunduan sa SVN tree (hindi sa release)
  • Nagdagdag ng mga kuru-kuro ng mga panloob na mga uri na ginamit ng mga compiler ngunit hindi ang mga user

Katulad na software

Stratego/XT
Stratego/XT

3 Jun 15

JBrownie
JBrownie

3 Jun 15

bpython
bpython

14 Apr 15

ScummVM
ScummVM

17 Feb 15

Mga komento sa Chapel

Mga Komento hindi natagpuan
Magdagdag ng komento
I-sa mga imahe!