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 scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Mitä hakemistoa minun kannattaa käyttää monien pienten tiedostojen analysointiin?

Puhdin interaktiivinen eräajo mahdollistaa komentotulkkisession käynnistämisen laskentasolmulla, jossa on enintään:

  • 8 ydintä
  • 76 Gt muistia
  • 7 päivän ajoaika
  • 720 Gt nopeaa paikallista väliaikaista levytilaa

Käynnistääksesi interaktiivisen session Puhdissa suorita komento:

sinteractive -i

Yksi Puhdin interaktiivisten eräajojen hyödyllisistä ominaisuuksista on NVMe-pohjainen nopea paikallinen väliaikaistallennusalue ($LOCAL_SCRATCH), jota voit pyytää käyttöösi. "Tavalliset" Lustre-pohjaiset projektikohtaiset hakemistot scratch ja projappl voivat tallentaa suuria määriä dataa, ja ne ovat kaikkien Puhdin solmujen käytettävissä. Nämä hakemistot ovat kuitenkin tehottomia tuhansien tiedostojen hallintaan.

Yleisesti ottaen kannattaa välttää työnkulkuja, jotka edellyttävät suurten määrien pieniä tiedostoja luomista. Jos sinun kuitenkin täytyy työskennellä tuhansien tiedostojen kanssa, kannattaa harkita NVMe-pohjaisten paikallisten väliaikaisten levyalueiden käyttöä joko tavallisten tai interaktiivisten eräajojen kautta. Paikallinen scratch-alue on solmukohtainen ja näkyy vain sille eräajolle, joka on sitä pyytänyt. Kun ajo päättyy, paikallinen scratch-alue tyhjennetään. Tämän vuoksi sinun täytyy aina ensin tuoda aineisto paikalliselle levylle, ja kun olet valmis, kopioida säilytettävä data takaisin johonkin pysyvämpään tallennuspaikkaan, kuten scratchiin tai Altaaseen.

Paikallisen scratch-alueen tehokkuuden havainnollistamiseksi tarkastellaan esimerkkihakemistoa nimeltä big_data. Hakemisto sisältää noin 100 Gt dataa 120 000 tiedostossa. Aluksi data on pakattu yhdeksi tar-arkistoksi projektin 2001234 scratch-hakemistossa (/scratch/project_2001234/big_data.tar).

Ensin käynnistämme interaktiivisen eräajon, jossa on 2 ydintä, 4000 Mt muistia ja 250 Gt nopeaa paikallista väliaikaista levytilaa.

sinteractive --cores 2 --mem 4000 --tmp 250

Analyysi tehdään sitten kolmessa vaiheessa:

  1. Siirry paikalliselle scratch-alueelle ympäristömuuttujan $LOCAL_SCRATCH avulla ja pura tar-paketti:

    cd $LOCAL_SCRATCH
    tar xf /scratch/project_2001234/big_data.tar
    

  2. Suorita analyysi. Tällä kertaa ajamme for-silmukan, joka käyttää komentoa transeq kääntääkseen kaikki big_data-hakemistosta löytyvät fasta-tiedostot uusiksi proteiinisekvenssitiedostoiksi:

    for ffile in $(find ./ | grep fasta)
    do
        transeq ${ffile} ${ffile}.pep
    done 
    
    Tässä esimerkissä löytyi noin 52 000 fasta-tiedostoa. Käsittelyn jälkeen big_data-hakemisto sisältää siis nyt 52 000 pientä tiedostoa lisää. Varsinainen käännös on laskennallisesti kevyt tehtävä, joten suurin osa ajasta kuluu vain tiedostojen avaamiseen ja sulkemiseen (I/O).

  3. Kun käsittely on valmis, tallennamme tulokset takaisin scratch-hakemistoon uutena tar-tiedostona:

    tar cf /scratch/project_2001234/big_data.pep.tar ./
    
    Nyt tulokset ovat turvassa yhtenä tiedostona scratchissa, ja voimme poistua interaktiivisesta sessiosta.

Sama analyysimenettely voitaisiin tehdä myös scratch-hakemistossa. Se on kuitenkin hidasta ja voi heikentää jaetun tiedostojärjestelmän suorituskykyä kaikille käyttäjille. Eron havainnollistamiseksi alla on suoritusaikavertailu kolmen yllä kuvatun vaiheen ajamisesta $LOCAL_SCRATCH-alueella ja tavallisessa Lustre-pohjaisessa scratch-hakemistossa. $LOCAL_SCRATCH-alueen vasteajat ovat melko vakaita, mutta scratch-hakemistossa suoritusaikojen vaihtelu on suurta Lustre-tiedostojärjestelmän senhetkisen kokonaiskuorman mukaan.

Vaihe $LOCAL_SCRATCH /scratch
1. Tar-tiedoston avaaminen 2m 8s 4m 12s
2. Käsittely 9m 42s 21m 58s
3. Uuden tar-tiedoston luominen 2m 25s 42m 21s
Yhteensä 14m 15s 1h 8m 31s

Lisätietoja paikallisista väliaikaisista levyalueista.

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta