Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 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.

MetaHipMer2 (MHM2)

MetaHipMer2 on UPC++:lla ja CUDA:lla kirjoitettu de novo -metagenomin lyhytlukukokoonpanotyökalu. Se toimii tehokkaasti yksittäisillä palvelimilla ja monisolmuisilla supertietokoneilla, joissa se voi skaalautua teratavun kokoisten metagenomien yhteiskokoonpanoon. Roihussa se on tarjolla GPU-kiihdytettynä versiona GH200-GPU-solmuille.

Lisenssi

MetaHipMer2 on vapaa ja avoimen lähdekoodin ohjelmisto Berkeley Labin muokatulla BSD 3-Clause -lisenssillä.

Saatavuus

  • Roihu-GPU: 2.2.2.0-20260904, bio-apps-moduulin kautta (vain GPU-solmut).

MHM2 toimii Roihun GPU- (GH200) solmuilla. Kirjaudu osoitteeseen roihu-gpu.csc.fi ja lataa moduulit siellä, jotta saat käyttöösi GPU-version.

Käyttö

MHM2 on osa Roihun bio-apps -kokoelmaa. Lataa ensin bio-apps-moduulipuu ja sitten MHM2-moduuli:

module load bio-apps/v202603
module load mhm2/2.2.2.0-20260904

Kokoonpanot käynnistetään mhm2.py-ajurilla, joka käynnistää rinnakkaiset (UPC++)-prosessit puolestasi — älä äläkä lisää sen eteen srun-komentoa. Perusajo paripäisillä luvuilla:

mhm2.py -p reads_1.fastq,reads_2.fastq -o assembly_result

Käytä valitsinta -p/--paired-reads paritetuille luvuille, jotka on jaettu erillisiin R1/R2-tiedostoihin (tiedostot erotetaan pilkulla), tai valitsinta -r/--reads lomitetuille paritetuille luvuille yhdessä tiedostossa.

Kootut kontigit kirjoitetaan tiedostoon assembly_result/final_assembly.fasta. Saat täydet tiedot valinnoista komennolla:

mhm2.py -h

Metagenomidatan kokoaminen vaatii paljon resursseja, joten aja MHM2 eräajona GPU-solmulla.

MHM2 vaatii GPU-solmun

MHM2 on GPU-versio ja linkittyy suoraan CUDA-ajurikirjastoon, joten se toimii vain Roihun GPU-solmuilla. Kirjautumissolmulla se epäonnistuu käynnistyksessä virheeseen error while loading shared libraries: libcuda.so.1, koska kirjautumissolmuilla ei ole GPU:ita.

Esimerkkieräajokomentosarja

MHM2 on prosessirinnakkainen (UPC++): mhm2.py käynnistää yhden prosessin jokaista Slurm-tehtävää kohti ja johtaa niiden määrän valitsimesta --ntasks-per-node. Varaa yksi tehtävä jokaista käytettävää CPU-ydintä kohti käyttäen valitsinta --cpus-per-task=1. Alla oleva esimerkki käyttää yhtä GPU:ta ja 72 prosessia:

#!/bin/bash
#SBATCH --job-name=mhm2
#SBATCH --account=<project>
#SBATCH --output=mhm2_out_%j.txt
#SBATCH --error=mhm2_err_%j.txt
#SBATCH --partition=gpumedium
#SBATCH --time=12:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=72 --cpus-per-task=1
#SBATCH --gres=gpu:gh200:1

module load bio-apps/v202603
module load mhm2/2.2.2.0-20260904

mhm2.py -p reads_1.fastq,reads_2.fastq -o assembly_result

Korvaa <project> omalla CSC-projektillasi (esimerkiksi project_2001234). Voit tarkistaa CSC-projektisi komennolla csc-projects. Lähetä työ komennolla sbatch:

sbatch mhm2_job.sh

Jos varaat vain yhden tehtävän (oletus), MHM2 toimii yhdellä ytimellä ja antaa varoituksen Detected slurm job restricts cores to 1 because of SLURM_TASKS_PER_NODE=1 — aseta --ntasks-per-node kuten yllä, jotta vältät tämän. Jos haluat käyttää koko GPU-solmua, pyydä kaikki neljä GPU:ta ja 288 tehtävää (--ntasks-per-node=288 --gres=gpu:gh200:4); MHM2 jakaa solmun GPU:t prosessiensa kesken. Koska se kommunikoi InfiniBandin kautta, se voi myös tehdä yhteiskokoonpanon usean solmun yli — kasvata tällöin --nodes-arvoa vastaavasti ja vaihda myös gpularge-osioon, joka tukee usean solmun pyyntöjä.

Sovita prosessien määrä datan kokoon

MHM2:n rinnakkaisen käynnistyksen, kommunikoinnin ja GPU-jakamisen yleiskustannukset korostuvat pienillä syötteillä, joten suuri määrä prosesseja voi olla hitaampi kuin muutama. Pienille tai testiaineistoille kannattaa pyytää vain muutama ydin (esimerkiksi --ntasks-per-node=4 --cpus-per-task=1 lyhytkestoisessa gputest-osiossa). Käytä kaikkia 72 ydintä GPU:ta kohti tai koko solmua vain suurille metagenomeille.

Katso lisätietoja eräajoista sivulta eräajokomentosarjan luominen Roihulle sekä käytettävissä olevista GPU-resursseista sivulta GPU-osiot.

Tuki

CSC:n Service Desk

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta