Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

Töiden lähettäminen arkkitehtuurien välillä

Yleiskatsaus

Roihussa CPU-solmut ovat x86-arkkitehtuuria ja GPU-solmut ARM-arkkitehtuuria, joten järjestelmässä on erilliset kirjautumissolmut kummallekin arkkitehtuurille. Tavallisesti CPU-työt kannattaa lähettää osoitteesta roihu-cpu.csc.fi ja GPU-työt osoitteesta roihu-gpu.csc.fi. Jos sinulla on perusteltu syy käyttää arkkitehtuurien välistä lähetystä, esimerkiksi kun CPU-solmulla oleva työnvuo tarvitsee käynnistää GPU-työn, tarvitaan hieman lisähuolellisuutta, jotta työ ei päädy käyttämään väärälle arkkitehtuurille rakennettuja ohjelmistoja.

Ongelma on se, että Slurm kopioi oletusarvoisesti koko lähetysympäristön työhön (--export=ALL). Tällöin muuttujat kuten PATH, LD_LIBRARY_PATH sekä Lmod-/moduulitila osoittavat lähettävän arkkitehtuurin binääreihin ja moduulipuihin, ja työ joko epäonnistuu tai käyttää huomaamatta väärää ohjelmistoa. Vältä tämä seuraavasti:

  1. Rajoita välitettävät muuttujat valitsimella --export, jotta kohdesolmu rakentaa oman ympäristönsä alusta alkaen. HOME ja TERM riittävät yleensä, ja Slurmin omat SLURM_*-muuttujat välitetään aina. Lisää vain ne muuttujat, joita työsi todella tarvitsee.

  2. Käynnistä työ kirjautumiskuorena, täydellä polulla annettuna (/bin/bash --login), jotta käyttäjäympäristö, mukaan lukien moduulijärjestelmä, alustetaan kohdesolmulla. Eräajoissa aseta lisäksi CSC_ENV_INIT_NON_INTERACTIVE=yes, jolloin /etc/profile.d/zz-csc-env.sh alustaa CSC-ympäristön ei-interaktiivisessa kuoressa. Interaktiiviset kuoret tekevät tämän oletusarvoisesti, koska ne asettavat PS1:n.

  3. Aseta eräajoissa SLURM_EXPORT_ENV=ALL skriptin sisällä. Muuten srun perisi rajoitetun --export-listan sen ympäristön sijaan, jonka eräajoskripti on juuri muodostanut kohdesolmulla.

Interaktiivinen työ

srun --account=<project> \
    --partition=gputest \
    --nodes=1 \
    --ntasks-per-node=1 \
    --cpus-per-task=72 \
    --gres=gpu:gh200:1 \
    --time=0:15:00 \
    --export=HOME,TERM \
    --pty /bin/bash --login

Eräajo

batch.sh
#!/bin/bash --login
#SBATCH --export=HOME,CSC_ENV_INIT_NON_INTERACTIVE=yes
#SBATCH --account=<project>
#SBATCH --partition=gputest
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=72
#SBATCH --nodes=1
#SBATCH --gres=gpu:gh200:1
#SBATCH --time=0:15:00
export SLURM_EXPORT_ENV=ALL

# Write your code here

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta