Hyppää sisältöön

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

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Töiden lähettäminen SD Desktopista CSC:n HPC-ympäristöön

SD Desktop -virtuaalikoneiden rajallinen laskentakapasiteetti voi estää raskaiden analyysitehtävien suorittamisen sensitiiviselle datalle. Tässä dokumentissa kuvataan, miten raskaita laskentatehtäviä voidaan lähettää SD Desktopista Puhti-HPC-klusteriin.

Huomioi seuraavat seikat, jotka rajoittavat tämän menettelyn käyttöä:

  • Palvelu ei ole vielä täydessä tuotantokäytössä. Käyttöoikeutta voidaan pyytää projekteille, joiden laskentatehtävät ovat yhteensopivia palvelun nykyisen tilan kanssa. Ota yhteyttä osoitteeseen servicedesk@csc.fi tämän palvelun käyttöönottoa varten.
  • Tässä dokumentissa kuvattu työnlähetystyökalu sdsi-client toimii vain hyväksytyille projekteille.
  • Jokainen työ varaa aina yhden, ja vain yhden, kokonaisen Puhti-solmun tehtävääsi varten. Pyri rakentamaan eräajosi niin, että se hyödyntää tehokkaasti yhden Puhti-solmun kaikki 40 laskentaydintä.
  • Työn käyttämät syötetiedostot on ladattava SD Connectiin ennen työn lähettämistä. Vaikka työ lähetetään SD Desktopista, et voi hyödyntää eräajossa mitään SD Desktop -virtuaalikoneen tiedostoja.
  • SD Desktopista Puhtiin lähetetyillä töillä on korkeampi tietoturvataso kuin tavallisilla Puhti-töillä, mutta matalampi kuin SD Desktopissa.

Tietoturvanäkökohdat

CSC:n Puhti-klusteri tarjoaa turvallisen ja hyvin ylläpidetyn ympäristön laskennalliseen tutkimukseen ja data-analyysiin. Puhti-supertietokonepalvelun tekniset ja organisatoriset toimenpiteet (TOMs) sisältävät yksityiskohtaista tietoa klusterin tietoturvatoimista.

Sensitiivisen datan työnlähetys sdsi-clientillä tarjoaa Puhtin käyttöön vielä korkeamman tietoturvatason. Korotettu tietoturva perustuu kahteen pääominaisuuteen:

  1. Sekä syöte- että tulosdata tallennetaan ja siirretään salatussa muodossa. Salaus tehdään automaattisesti SD Connect -menetelmällä.
  2. Varsinaista analyysiä varten data puretaan väliaikaisesti laskentasolmun paikalliselle levyalueelle, joka on varattu kokonaan vain tälle yhdelle työlle. Näin ollen solmussa ei ole työn suorituksen aikana muita käyttäjiä, eivätkä muut käyttäjät voi käsittelyn aikana käyttää solmun levyalueita, muistia tai prosessilistaa. Tätä keskeistä rajoitusta toteuttavat tekniset ja toiminnalliset toimenpiteet on kuvattu Puhtin TOMeissa.

Aloittaminen

Lisää Puhti-palvelu projektiisi. Ota sen jälkeen yhteyttä CSC:hen (servicedesk@csc.fi) ja pyydä, että Puhti-käyttöoikeus luodaan SD Desktop -ympäristöösi. Jos CSC arvioi käyttötapauksesi sopivaksi tähän palveluun, projektillesi luodaan robottitunnus ja CSC käynnistää projektille projektikohtaisen palvelinprosessin.

Töiden lähettäminen

Työt lähetetään SD Desktopissa komennolla sdsi-client. Tämä komento voidaan lisätä SD Desktop -koneellesi asentamalla CSC Tools SD-työkalujen asennustyökalulla SD Desktop -koneellesi.

Datan lataaminen

sdsi-clientin lähettämät eräajot lukevat syötedatan SD Connect -palvelusta. Siksi kaikki syötedata on ladattava SD Connectiin ennen työn lähettämistä. Huomaa, että et voi käyttää eräajon syötetiedostoina SD Desktop -virtuaalikoneesi paikallisilla levyillä olevaa dataa etkä SD Connectissa olevia salaamattomia tiedostoja. Puhtin paikallisia tiedostoja voidaan kuitenkin käyttää, jos käyttöoikeudet sallivat kaikkien ryhmän jäsenten käyttää dataa.

Siksi sensitiivisen datan eräajon lähettämisen ensimmäinen vaihe on syötedatan lataaminen SD Connectiin.

Eräajotiedoston muodostaminen

Kun lähetät eräajon SD Desktopista, sinun on määriteltävä seuraavat tiedot:

  1. Mitkä tiedostot on ladattava SD Connectista Puhtiin syötetiedostoiksi (data:)
  2. Mitkä komennot suoritetaan (run:)
  3. Mikä data viedään Puhtista SD Connectiin työn päättyessä
  4. Kuinka paljon resursseja (aikaa, muistia, väliaikaista levytilaa) työ tarvitsee (sbatch:)

Voit määritellä nämä komentorivillä sdsi-client-komennon valitsimilla, mutta tavallisesti on kätevämpää antaa nämä tiedot eräajon määritystiedostossa. Alla on esimerkki yksinkertaisesta sdsi-työn määritystiedostosta nimeltä job1.sdsi

data:
  recv:
  - 2008749-sdsi-input/data1.txt.c4gh
  - 2008749-sdsi-input/data2.txt.c4gh
run: |
  md5sum 2008749-sdsi-input/data1.txt
  md5sum 2008749-sdsi-input/data2.txt
sbatch:
- --time=00:15:00
- --partition=test

Lisää esimerkkejä sdsi-eräajoista löytyy alempaa.

Työn lähettäminen

Tiedostossa määritelty eräajo voidaan lähettää komennolla:

sdsi-client new -input job1.sdsi
Lähetyskomento pyytää CSC-salasanasi, minkä jälkeen se lähettää tehtävän eräajojonoon. Lähetyksen jälkeen komento tulostaa työn tunnistenumeron. Voit käyttää tätä tunnistenumeroa työsi tilan tarkistamiseen. Esimerkiksi työn 123456 tilan voit tarkistaa SD Desktopissa komennolla:

sdsi-client status 123456
Vaihtoehtoisesti voit käyttää tätä tunnusta Puhdissa komennolla sacct:

sacct -j 123456

Käsittelyn vaiheet

sdsi-clientillä lähetetty tehtävä siirretään Puhtin eräajojärjestelmään, jossa se käsitellään muiden eräajojen joukossa. Eräajon resurssivaatimukset: laskenta-aika, muisti, paikallisen levyn koko, GPU:t, asetetaan työnkuvaustiedoston sbatch:-osion arvojen mukaisesti.

Varsinainen laskenta alkaa vasta, kun sopiva Puhti-solmu on saatavilla. Jonotusajat voivat olla pitkiä, koska työt varaavat aina yhden kokonaisen solmun, jossa on riittävästi paikallista levytilaa ja muistia.

Varsinaisen laskennan suoritus sisältää seuraavat vaiheet:

  1. Työnkuvaustiedostossa määritellyt syötetiedostot ladataan ja puretaan salauksesta laskentasolmun paikalliseen väliaikaiseen levytilaan.
  2. run:-osiossa määritellyt komennot suoritetaan
  3. Tulostiedostot salataan ja ladataan SD Connectiin.
  4. Paikallinen väliaikainen levytila siivotaan.

Tulosteet

Oletuksena vietävät tiedostot sisältävät eräajon vakiotulosteen ja vakiovirheen (tämä on teksti, joka interaktiivisessa työskentelyssä kirjoitetaan päätenäytölle) sekä hakemistossa $RESULTS olevat tiedostot.

Tulokset ladataan Puhtista SD Connectiin ämpäriin nimeltä: sdhpc-results-project_number, alikansioon, joka on nimetty eräajon tunnuksen mukaan. Yllä olevassa esimerkissä käytetty projekti oli 2008749 ja työn tunnus oli 123456. Näin ollen työ tuottaisi SD Connectiin kaksi uutta tiedostoa:

    sdhpc-results-2008749/123456/slurm.err.tar.c4gh
    sdhpc-results-2008749/123456/slurm.out.tar.c4gh
Voit vaihtaa tulosämpärin sdsi-clientin valitsimella -bucket bucket-name. Huomaa, että myös tässä tapauksessa ämpärin nimen on oltava yksilöllinen.

Sarjatöiden tehokas suorittaminen

sdsi-clientin lähettämät työt varaavat aina yhden kokonaisen Puhti-solmun. Näissä solmuissa on 40 laskentaydintä, joten sinun kannattaa käyttää näitä eräajoja tehtäviin, jotka voivat hyödyntää useita laskentaytimiä. Mieluiten kaikkia 40:tä.

Edellisessä esimerkissä varsinainen laskentatehtävä koostui md5-tarkistussummien laskemisesta kahdelle tiedostolle. Käytetty komento md5sum pystyy käyttämään vain yhtä laskentaydintä, joten työ tuhlasi resursseja, koska 40 ydintä oli varattu mutta vain yhtä käytettiin.

Jos sinun kuitenkin täytyy laskea suuri määrä toisistaan riippumattomia tehtäviä, jotka pystyvät käyttämään vain yhtä tai muutamaa laskentaydintä, voit käyttää työkaluja kuten gnuparallel, nextflow tai snakemake useiden laskentatehtävien suorittamiseen samanaikaisesti.

Alla olevissa esimerkeissä meillä on SD Connectiin tallennettu tar-arkistotiedosto: 2008749-sdsi-input/data_1000.tar.c4gh. Tar-tiedosto sisältää 1000 tekstitiedostoa (.txt), joille haluamme laskea md5sum-tarkistussumman. Alla on kolme vaihtoehtoista tapaa suorittaa tehtävät niin, että kaikki 40 ydintä käytetään tehokkaasti.

GNUparallel

GNUparallel-pohjaisen rinnakkaistamisen tapauksessa työnvuo voisi näyttää seuraavalta:

data:
  recv:
  - 2008749-sdsi-input/data_1000.tar.c4gh
run: |
  source /appl/profile/zz-csc-env.sh
  module load parallel
  tar xf 2008749-sdsi-input/data_1000.tar
  cd  data_1000
  ls *.txt  | parallel -j 40 md5sum {} ">" {.}.md5
  tar -cvf md5sums.tar *.md5
  mv md5sums.tar $RESULTS/
sbatch:
- --time=04:00:00
- --partition=small

Yllä olevassa esimerkkityössä ensimmäistä komentoa source /appl/profile/zz-csc-env.sh käytetään lisäämään module-komento ja muut Puhtin asetukset suoritusympäristöön. GNUparallel otetaan käyttöön komennolla module load parallel. Seuraavaksi 1000 tiedostoa sisältävä tar-tiedosto puretaan paikalliselle väliaikaiselle levyalueelle. Lopuksi puretun hakemiston .txt-tiedostolistaus ohjataan parallel-komennolle, joka suorittaa annetun komennon md5sum jokaiselle tiedostolle ({}) käyttäen 40 rinnakkaista prosessia (-j 40).

NextFlow

Jos haluat käyttää NextFlow’ta, sinun on ensin ladattava NextFlow-tehtävätiedosto (md5sums.nf tässä tapauksessa) SD Connectiin. Tämä tiedosto määrittelee käsiteltävät syötetiedostot, suoritettavat komennot ja luotavat tulosteet. Huomaa, että et voi ladata tätä tiedostoa SD Connectiin SD Desktopista, vaan sinun on ladattava se esimerkiksi omalta tietokoneeltasi tai Puhdista.

NextFlow-tiedoston md5sums.nf sisältö

nextflow.enable.dsl=2

process md5sum {
    tag "$filename"

    input:
        path txt_file from files("*.txt")

    output:
        path "${txt_file}.md5"

    script:
        """
        md5sum $txt_file > ${txt_file}.md5
        """
}

workflow {
    md5sum()
}
Varsinainen sdsi-työtiedosto voisi näyttää tältä:

data:
  recv:
  - 2008749-sdsi-input/md5sums.nf.c4gh
  - 2008749-sdsi-input/data_1000.tar.c4gh
run: |
  source /appl/profile/zz-csc-env.sh
  module load nextflow
  tar xf 2008749-sdsi-input/data_1000.tar
  cp 2008749-sdsi-input/md5sums.nf data_1000
  cd data_1000
  nextflow run md5sums.nf -process.executor local -process.maxForks 40
  tar -cvf md5sums.tar *.md5
  mv md5sums.tar $RESULTS/

sbatch:
- --time=04:00:00
- --partition=small

SnakeMake

Jos haluat käyttää SnakeMakea, sinun on ensin ladattava SnakeMake-työtiedosto (md5sums.snakefile tässä tapauksessa) SD Connectiin. Tämä tiedosto määrittelee käsiteltävät syötetiedostot, suoritettavat komennot ja luotavat tulosteet. Huomaa, että et voi ladata tätä tiedostoa SD Connectiin SD Desktopista, vaan sinun on ladattava se esimerkiksi omalta tietokoneeltasi tai Puhdista.

SnakeMake-tiedoston md5sums.snakefile sisältö

txt_files = [f for f in os.listdir(".") if f.endswith(".txt")]

rule all:
    input:
        expand("{file}.md5", file=txt_files)

rule md5sum:
    input:
        "{file}"
    output:
        "{file}.md5"
    shell:
        "md5sum {input} > {output}"

Varsinainen sdsi-työtiedosto voisi näyttää tältä:

data:
  recv:
  - 2008749-sdsi-input/md5sums.snakefile.c4gh
  - 2008749-sdsi-input/data_1000.tar.c4gh
run: |
  source /appl/profile/zz-csc-env.sh
  module load snakemake
  mkdir snakemake_cache
  export SNAKEMAKE_OUTPUT_CACHE=$(pwd)"/snakemake_cache"
  tar xf 2008749-sdsi-input/data_1000.tar
  cp 2008749-sdsi-input/md5sums.snakefile data_1000
  cd data_1000
  snakemake --cores 40 --snakefile md5sums.snakefile
  tar -cvf md5sums.tar *.md5
  mv md5sums.tar $RESULTS/

sbatch:
- --time=04:00:00
- --partition=small

GPU-laskenta

sdsi-clientiä voidaan käyttää myös Puhtin GPU-kapasiteettia hyödyntävien töiden lähettämiseen. Alla olevassa esimerkissä GPU-laskentaa käytetään whisper-puheentunnistustyökalun nopeuttamiseen. Whisper on asennettu Puhtiin, ja se otetaan siellä käyttöön komennolla module load whisper.

data:
  recv:
  - 2008749-sdsi-input/interview-52.mp4.c4gh
run: |
  source /appl/profile/zz-csc-env.sh
  module load whisper
  whisper --model large -f all -o $RESULTS --language Italian 2008749-sdsi-input/interview-52.mp4
sbatch:
- --time=01:00:00
- --gres=gpu:v100:1

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta