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

Περιγραφή

Wolfram Mathematica is a modern technical computing system spanning all areas of technical computing—including neural networks, machine learning, image processing, geometry, data science, visualizations, and others. The system is used in many technical, scientific, engineering, mathematical, and computing fields.

Mathematica 12.0.0

Συνδεόμαστε στον aristotle.it.auth.gr μέσω ssh και δημιουργούμε ένα νέο φάκελο:

# mkdir Mathematica-12.0.0-case
# cd Mathematica-12.0.0-case

Μέσα στο φάκελο τοποθετούμε ένα Mathematica notebook, π.χ. το pi.m.

SLURM submission script
#!/bin/bash
#SBATCH -J Mathematica-Job
#SBATCH -p htc
#SBATCH -t 15:00

module load Mathematica/12.0.0

math -noprompt -script 'pi.m'  >>pi_results.txt

Σώζουμε τα περιεχόμενα σε ένα νέο αρχείο (π.χ. με όνομα Mathematica-12.0.0-case.sh). Η υποβολή της εργασίας γίνεται με την εντολή sbatch <filename.sh> ως εξής:

# sbatch Mathematica-12.0.0-case.sh

Παρακολουθούμε με την εντολή squeue την εξέλιξη της εργασίας.

Για να δουμε τα αποτελέσματα ενώ η ρουτίνα εκτελείται ή στο τέλος πρέπει να δώσουμε την εντολή Print ώστε να φανεί στο slurm-<job_id>.out. Μια άλλη λύση είναι να προσθέσουμε extensions για τη δημιουργία αρχείων output ( δείτε Μεταβλητές ονοματοδοσίας αρχείων εξόδου (Filename pattern variables) ) αλλά συνίσταται η χρήση εσωτερικών εντολών, όπως το Export ή >>output_file.txt.

Random_Table.m

(*Create a table of random numbers*)

(* We will flip 100 coins ,100 times. 1 is heads and 0 is letters *)

RRtable=Table[Table[RandomInteger[],{i,1,100}],{j,1,100}];

a[i_]:=ListPlot[RRtable[[i]],Joined-> True]

(*Export one txt file with all the data*)
Export["random_table.txt",RRtable]

(*Create one file png for each line of data, depicting the behaviour of one coin*)
For[i=0,i<100,i++;
Export["Coin_toss"<>ToString[i]<>".png",a[i]]]

Για αρχεία όπου δημιουργούμε >>output_file.txt (όπως στο pi.m) μπορεί να γίνει η χρήση της εντολής tail:

# tail -f pi_result.txt

Καταλήξεις αρχείων

Το αρχείο κώδικα μπορεί να είναι της μορφής .m, .nb ,και .wl. Ωστόσο πρέπει να προσέξουμε την έκδοση της Mathematica που κάνουμε χρήση, διότι η κατάληξη .wl δεν είναι συμβατή προς τα πίσω.

Σειριακές και παράλληλες Εργασίες

Η Mathematica παρουσιάζει μερικές ιδιαιτερότητες αναφορικά με το παραλληλισμό του κώδικα βάση των διαθέσιμων πόρων. Για να γίνει επιτυχώς, ο χρήστης πρέπει αρχικά να εξοικειωθεί με τις ειδικές εντολές ή και τα ορίσματα που υπάρχουν στο documentation της Mathematica. Αυτές οι εντολές/ορίσματα προσαρμόζουν την παράλληλη διαδικασία ανάλογα με το πλήθος των διαθέσιμων πόρων (κάτι που στο hpc ορίζεται κατά την υποβολή των .sh αρχείων).

Παραδειγματικά η εντολή Table θα γραφεί ως ParallelTable και θα αναθέτει κάθε στοιχείο του πίνακα σε άλλο πόρο.

Για επαναλμβανόμενες διεργασίες (πχ δημιουργία εικονικού δείγματος τυχαιών αριθμών) με πολλά εξαγώμενα αρχεία,για μικρό πλήθος επαναλήψεων είναι ελαφρώς πιο πρακτική η σειριακή μορφή του κώδικα.

Γραφικό Περιβάλλον

Μπορούμε να ξεκινήσουμε το γραφικό περβάλλον του Mathematica στην υπολογιστική συστοιχία από το web portal της υπολογιστικής συστοιχίας, ακολουθώντας τα βήματα που περιγράφονται στις οδηγίες για την εκκίνηση του γραφικού περιβάλλοντος του Mathematica.