Portál AbcLinuxu, 2. května 2025 05:39
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.
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:
Chapel je OSS, uvolený pod Apache 2.0 Licenciou.
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 makea 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 chplcheckcd $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.
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; ./hellochpl 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.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.