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.

Virheenkorjaus

Valmistele koodi virheenkorjausta varten

Jotta käytettävissä olisi täydet virheenkorjaustiedot, kiinnostuksen kohteena oleva ohjelma täytyy yleensä kääntää uudelleen siten, että virheenkorjauslippu (-g) on käytössä. Esimerkiksi GNU-kääntäjällä:

gcc -g -o example example.c

Muistivuodot

Hyvä aloituskohta on tarkistaa muistivuodot Valgrindilla. Se on monipuolinen työkalu, jota käytetään yleisimmin koodin muistivuotojen havaitsemiseen, mutta sitä voidaan käyttää myös esimerkiksi säikeistyksen virheiden tunnistamiseen tai keon ja välimuistin käytön tutkimiseen.

Jotta voit käyttää Valgrindia, valmistele ympäristö normaalisti koodisi vaatimalla tavalla ja käännä koodi uudelleen siten, että virheenkorjauslippu (-g) on lisätty.

Analyysin ajaminen Valgrindilla on yksinkertaista, ja sen voi tehdä joko interaktiivisessa istunnossa tai ajoon jätettynä työnä. Interaktiivisessa istunnossa käytettävä komento on valgrind ./myprogram, kun taas ajoon jätetyssä työssä komento on srun valgrind ./myprogram.

Esimerkiksi muistivuotojen tarkistaminen interaktiivisessa istunnossa:

module load valgrind

valgrind ./example

Jos haluat ajaa saman analyysin tavallisena ei-interaktiivisena työnä, esimerkiksi rinnakkaisohjelmaa virheenkorjatessa, käytettävä komento on srun valgrind ./example.

Virheenkorjaimet

Täysimittaisia virheenkorjaimia tarvitaan usein, jotta voidaan todella perehtyä koodin suoritukseen ja ratkaista ajonaikaisia virheitä. CSC:llä on saatavilla useita virheenkorjaimia:

  • Arm DDT on virheenkorjain sarjallisille ja rinnakkaisille ohjelmille (MPI, OpenMP, CUDA), ja siinä on sekä graafinen käyttöliittymä että komentorivikäyttöliittymä
  • GDB on komentorivikäyttöliittymässä toimiva virheenkorjain käännetyille ohjelmille (C, C++, Fortran jne.)
  • PDB on interaktiivinen virheenkorjain Python-ohjelmille
  • CUDA-GDB on komentorivikäyttöliittymässä toimiva virheenkorjain CUDA-ohjelmille
  • compute-sanitizer on komentorivikäyttöliittymässä toimiva toiminnallisen oikeellisuuden tarkistustyökalujen kokonaisuus

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta