Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

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

Puhtiin ajettava interaktiivinen eräajo mahdollistaa komentotulkkisession käynnistämisen laskentasolmulla enintään seuraavilla resursseilla:

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

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

sinteractive -i

Yksi Puhtiin 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 Puhtin solmujen käytettävissä. Nämä hakemistot ovat kuitenkin tehottomia tuhansien tiedostojen hallintaan.

Yleisesti ottaen kannattaa välttää työnkulkuja, joissa täytyy luoda suuria määriä pieniä tiedostoja. Jos sinun kuitenkin täytyy työskennellä tuhansien tiedostojen kanssa, kannattaa harkita NVMe-pohjaisten paikallisten väliaikaislevyalueiden käyttöä joko tavallisten tai interaktiivisten eräajojen kautta. Paikallinen scratch-alue on solmukohtainen ja näkyy vain sitä pyytäneelle eräajolle. Ajon päätyttyä paikallinen scratch tyhjennetään. Tämän vuoksi sinun täytyy aina ensin siirtää aineistosi paikalliselle levylle, ja työn valmistuttua 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-hakemistoon (/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 52 000 pientä tiedostoa enemmän. 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ä kaikkien käyttäjien kannalta. Eron havainnollistamiseksi alla on suoritusaikavertailu siitä, kun yllä olevat kolme vaihetta suoritetaan $LOCAL_SCRATCH-alueella ja tavallisessa Lustre-pohjaisessa scratch-hakemistossa. $LOCAL_SCRATCH-alueen vasteajat ovat melko vakaita, mutta scratch-hakemistossa suoritusajat vaihtelevat paljon 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äliaikaislevyalueista.

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta