Portál AbcLinuxu, 2. května 2025 05:39

Chapel I - inštalácia / Úvod

11.8.2024 21:07 | Přečteno: 1106× | Code Snippety | poslední úprava: 11.8.2024 21:07

Nedávno som objavil jazyk resp celú technológiu, pre HPC a concurrent programming. Okrem lokálnej concurrency a delenia úloh na tasky (prípadne thready), umožňuje velmi jednoducho aj distribúciu výpočtov medzi viacero počítačov. A tiež podporuje beh kódu na GPGPU. Jazyk má aj kopec iných zaujímavých vlastností, ale tým sa budeme podrobnejšie venovať v neskorších článkoch.


Na čom to beží?


Hlavnou platformou pre tento jazyk sú superpočítače Cray. Takže budete musieť rozbiť prasiatko a jeden si kúpiť. Tu je odkaz na eshop... Kto má známeho vo vatikáne alebo má na záhrade kaplnku, bude mať zľavu. Ale nie :D Chapel sa dá rozbehať aj na dostupneších platformách, vpodstate nám stačí trošku rýchlejši PC s linuxom, hlavne sa držme hesla "čím viac jadier, tým viac ADIDAS"

Zoznam hlavných platforiem:

  1. Superpočítače Cray
  2. IBM mainframes
  3. PC / Servery / RPi - s Unixom, FreeBSD, Linuxom či MacOSom
  4. Dá sa rozbehnúť aj na Windowse (cez WSL, Cygwin alebo Msys2), prípadne cez Docker. Pokiaľ, chceme použiť obligátny Linux, či WSL a rozbehnúť to s podporou GPU, treba mať nainštalované podľa možnosti, najnovšie NVIDIA ovládače a k tomu CUDA framework (ak používame WSL, tak cuda treba nainštalovať priamo do WSL). Chapel podporuje aj karty od AMD, Intel GPUs zatiaľ nie.

Licencia


Chapel je OSS, uvolený pod Apache 2.0 Licenciou.


Inštalácia


stiahneme a rozbalíme si zdroják:

wget https://github.com/chapel-lang/chapel/releases/download/2.1.0/chapel-2.1.0.tar.gz -O ~/chapel-2.1.0.tar.gz
mkdir -p ~/chapel-2.1.0
tar -xzf ~/chapel-2.1.0.tar.gz -C ~/chapel-2.1.0

Ešte pred inštaláciou si treba pripraviť balíčky na ktorých inštalácia závisí https://chapel-lang.org/docs/usingchapel/prereqs.html

Celá inštalácia sa nastavuje pomocou env variables. Na začiatok nám (pre Fish) stačí do config.fish pridať toto:

set -x PATH /usr/local/cuda/bin $PATH
set -x LD_LIBRARY_PATH /usr/local/cuda/lib64 $LD_LIBRARY_PATH

set -x CHPL_HOME ~/chapel-2.1.0
set -x CHPL_BIN_SUBDIR "$CHPL_HOME/util/chplenv/chpl_bin_subdir.py"

set -x CHPL_LOCALE_MODEL "gpu"
set -x CHPL_GPU "nvidia"
set -x CHPL_LLVM "bundled"

fish_add_path "$CHPL_HOME/bin/linux64-x86_64"
fish_add_path "$CHPL_HOME/bin$CHPL_BIN_SUBDIR"

alebo pre Bash:

export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

export CHPL_HOME=~/chapel-2.1.0
export CHPL_BIN_SUBDIR="$CHPL_HOME/util/chplenv/chpl_bin_subdir.py"

export CHPL_LOCALE_MODEL="gpu"
export CHPL_GPU="nvidia"
export CHPL_LLVM="bundled"

export PATH="$CHPL_HOME/bin/linux64-x86_64:$PATH"
export PATH="$CHPL_HOME/bin$CHPL_BIN_SUBDIR:$PATH"

potom už len stačí zadať:

cd $CHPL_HOME
make
a spustí sa kompilácia, Ak nemáte doma NVIDIA, alebo AMD kartu, môžete si to skompilovať bez podpory GPU. Toto sú len základné nastavenia, je ich omnoho viac. Viac vám poradí dokumentácia alebo AI. Všetky aktuálne nastavenia sa dajú pozrieť týmto príkazom: $CHPL_HOME/util/printchplenv --all

spolu s chapelom sa nám skompiluje aj celý clang. Ak sa tomu chceme vyhnúť a použiť ten čo už máme v systéme, zmeníme export CHPL_LLVM="bundled" na CHPL_LLVM="system", ja som ale vykompiloval aj clang 18.x koli kompatibilte s najnovším CUDA frameworkom. Pokail vám bude hádzať chyby, nastavte si to na bundled.

Ak chceme podporu pre editory a IDEcka nainštalujeme si aj chpl-language-server a chplcheck
cd $CHPL_HOME
make chpl-language-server
make chplcheck

Ako editory sú podporované VSCode, EMACS, Atom a Vim. Osobne používam VSCode s chapel pluginom, ale autocomplete a type hinting tam neni úplne dokonalý. Asi budem musieť skúsiť neovim, spacevim či spacemacs.


Príklad Hello


Pripravíme si súbor, hello.chpl a vložíme doň toto:

writeln("Hello from chappel");

čo vieme urobiť prikazom:

echo 'writeln("Hello from Chapel");' > hello.chpl

a spustíme:

chpl -o hello hello.chpl --fast; ./hello
chpl je compiler jazyka -o je prepínač, za ktorý ide názov spustiteľnej binárky a zdrojový súbor. --fast je prepínač, ktorý by mal trošku zrýchliť kompiláciu. Ďalší príkaz v poradí (za bodkočiarkou) - ./hello je samotná (práve vygenerovaná) binárka.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

12.8.2024 17:59 ...
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Odpovědět | Sbalit | Link | Blokovat | Admin
aaaargh aspon nejakej teaser to chtelo :-D ale maximalni kudos za vyber tematu, tesim se na pokracovani ;-)
18.8.2024 09:21 nebetyčný Penis
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Odpovědět | Sbalit | Link | Blokovat | Admin
Aké parametre musí mať Superpočítač aby bol tak klasifikovaný?

Utiahne to bežný 16 ampérový istič?
18.8.2024 15:20 RealJ | skóre: 8
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Slovenskym superpocitacum to staci.
19.8.2024 07:33 nebetyčný Penis
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Určite to nebude ani zdaleka performance unlimited.

Kolko to má Teraflopov?

Bude to možné participovať s EuroHPC Joint Union?
19.8.2024 17:37 RealJ | skóre: 8
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Slovenske superpocitace nepouzivaji teraflopy, vykon se pocita v jednotce zvane Bééé...
19.8.2024 12:18 karkar | skóre: 8 | blog: Kartrolling
Rozbalit Rozbalit vše Re: Chapel I - inštalácia / Úvod
Odpovědět | Sbalit | Link | Blokovat | Admin
To je pěkný, to nám tu roste konkurence tišníkovi...

Jsem zvědavý na pokračování a taky navrhuji, že bys mohl udělat seriál i o slovenskému národnímu programovacím jazyku COBOL (anglicky se název píše bez diakritiky).

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.