Μετάβαση στο περιεχόμενο

NAMD

Το NAMD (NAnoscale Molecular Dynamics) είναι μια εφαρμογή μοριακής δυναμικής υψηλών επιδόσεων, σχεδιασμένη για παράλληλη επεξεργασία. Αναπτύχθηκε από την Ομάδα Θεωρητικής και Υπολογιστικής Βιοφυσικής του Πανεπιστημίου του Illinois, με στόχο την προσομοίωση μεγάλων βιομοριακών συστημάτων. Διατίθεται δωρεάν ως λογισμικό ανοιχτού κώδικα και κλιμακώνεται αποδοτικά σε εκατοντάδες χιλιάδες πυρήνες, ενώ συχνά χρησιμοποιείται σε συνδυασμό με το VMD για την ανάλυση των αποτελεσμάτων.

Για περισσότερες πληροφορίες σχετικά με το λογισμικό, επισκεφθείτε την επίσημη ιστοσελίδα.

Σύνδεση στο Nefeli Cluster

Πριν από οποιαδήποτε ενέργεια, ο χρήστης πρέπει να έχει συνδεθεί επιτυχώς στο Nefeli cluster. Οι οδηγίες σύνδεσης παρέχονται στο ακόλουθο εγχειρίδιο.

NAMD nightly build version 3.0.2

Παράδειγμα χρήσης

Στο $HOME μας στο login node, δημιουργούμε ένα νέο φάκελο (έστω namd-test), μεταφερόμαστε εκεί και αντιγράφουμε τα κατάλληλα αρχεία (έστω της πρωτεΐνης bbl) καθώς και τον φάκελο toppar, ο οποίος περιέχει παραμέτρους τύπου Force Field CHARMM36. Όλα τα παραπάνω παρέχονται με την εγκατάσταση του λογισμικού στην κεντρική διαδρομή των εφαρμογώνκαι απαιτείται απλώς η μεταφορά τους στο working directory μας.

mkdir namd-test
cd namd-test
module load namd/gpu-3.0.2
cp $NAMD_EXAMPLES/bbl/topology/* .
cp -r $NAMD_EXAMPLES/../toppar .

Μέσα στο ίδιο working directory, δημιουργούμε και τοποθετούμε το αρχείο εισόδου μας, έστω namd-test.conf στο οποίο ορίζουμε τις παραμέτρους προσομοίωσης του συστήματος. Μερικές από αυτές μπορεί να είναι η θερμοκρασία, το χρονικό βήμα (timestep) καθώς και ο αριθμός των βημάτων για ελαχιστοποίηση ενέργειας (minimization).

Μέσα στο αρχείο εισόδου μας κρίνεται απαραίτητο να δηλώσουμε τις διαδρομές για τα αρχεία παραμέτρων (.prm και .str) που βρίσκονται στον φάκελο toppar.

Δημιουργούμε ή μεταφέρουμε το script για την υποβολή της εργασίας, (έστω namd-case.sh) το οποίο θα εκτελεστεί σε GPU node. O κώδικάς του, παρουσιάζεται αναλυτικά παρακάτω:

SLURM submission script

#!/bin/bash
#SBATCH --job-name=namd-GPU-Job
#SBATCH --partition=a100        
#SBATCH --gres=gpu:1             
#SBATCH --ntasks=1              
#SBATCH --cpus-per-task=8        
#SBATCH --output=output.out    

module load namd/gpu-3.0.2

namd3 +setcpuaffinity +p8 test.conf > test.log

Στη συνέχεια, υποβάλουμε την εργασία με την εντολή sbatch <filename.sh> ως εξής:

  sbatch namd-case.sh

Παρακολουθούμε την εξέλιξη της εργασίας μέσω της εντολής squeue. Εφόσον η εργασία έχει εκκινήσει, μπορούμε να ελέγχουμε την πρόοδο της επίλυσης σε πραγματικό χρόνο:

  tail -f test.log

Η επιτυχής ολοκλήρωση επιβεβαιώνεται από τη δημιουργία των αρχείων εξόδου (όπως το αρχείο τροχιάς .dcd) και από την παρουσία των τιμών ενέργειας ENERGY: στο αρχείο καταγραφής.

Terminal output
# grep "ENERGY:" test.log
Info: ABSOLUTE IMPRECISION IN FAST TABLE ENERGY: 1.69407e-21 AT 11.9974
Info: RELATIVE IMPRECISION IN FAST TABLE ENERGY: 1.13046e-16 AT 11.9974
ENERGY:       0       140.1681       371.6800       356.7853        24.7048         -47678.4135      4292.1724         0.0000         0.0000         0.0000         -42492.9028         0.0000    -42492.9028    -42492.9028         0.0000
ENERGY:       1       166.2011       285.4899       347.8530        11.8055         -48062.3845      4119.4419         0.0000         0.0000         0.0000         -43131.5931         0.0000    -43131.5931    -43131.5931         0.0000
ENERGY:       2       811.0992       411.8933       349.3284        14.8386         -48414.5188      3977.2489         0.0000         0.0000         0.0000         -42850.1103         0.0000    -42850.1103    -42850.1103         0.0000
...                         ...                                ...                               ...
ENERGY:     100        56.7688       175.5095       304.3876         7.8865         -57516.1192      5456.5350         0.0000         0.0000      3006.9770         -48508.0548       112.6213    -51515.0318    -48505.5806       106.2274