Opis
Mathematica je komercijalni softver za matematičko računanje, simboličko i numeričko računanje, programiranje, vizualizaciju i analizu podataka. Ovaj softver omogućuje korisnicima da rade sa širokim spektrom matematičkih funkcija i formula, te ih primijene u različitim područjima kao što su matematika, fizika, kemija, biologija, financije, inženjerstvo i druge znanstvene discipline.
Verzije
Verzija | Modul |
---|---|
13.2.1 | scientific/mathematica/13.2.1 |
Licenca i korištenje
Srce ima na raspolaganju 28 takozvanih "floating seat" ili "plivajućih" licenci. Ovaj tip licenciranja omogućava pristup Mathematica softvera većem broju korisnika, ali ograničava broj istovremenih korisnika tj. instanci Mathematica-e na 28. Osim 28 plivajućih licenci, računanje je ograničeno na ukupno 224 "Subkernels-a". Subkerneli su pomoćni procesi koji se pokreću kako bi se omogućilo korištenje distribuirano ili paralelno računanje. Broj subkernela koje koji se koriste u jednom poslu odgovara broju zatraženih CPU jezgara.
Broj dostupnih licenci i subkernela na Supek-u je podložan promjenama u budućnosti a korisnici mogu provjeriti trenutno stanje sa naredbom:
qstat -Bf
Ovom naredbom moguć je:
resources_available.math_cpu = 224 --> Broj subkernela resources_available.math_lic = 28 --> Broj licenci
i
resources_assigned.math_cpu = 32 --> Broj subkernela resources_assigned.math_lic = 4 --> Broj licenci
Broj slobodnih licenci u trenutku provjere jednak je razlici ukupno dostupnih i licenci trenutno u potrebi. Za gore naveden primjer, broj slobodnih licenci iznosio bi 24 tj. 192 subkernela.
Podnošenje posla
U uzglavlju skripte za podnošenje posla OBAVEZNO je navesti dodatna 2 parametra math_lic i math_cpu.
math_lic - broj licenci koje rezervirate sa pokretanjem posla (Uvijek 1!)
math_cpu - broj subkernela koje rezervirate sa pokretanjem posla. Ovaj broj mora odgovarati broju jezgara zatraženih sa parametrom select=broj jezgara.
OBAVEZNO
math_lic=1
Primjer
Primjer u nastavku sastoji se od PBS skripte za podnošenje posla (test.pbs) i Mathematica skripte (hpc_test.wl) koje se moraju nalaziti u istom direktoriju da bi posao bio uspješno izvršen. Resursi i rezervacija licence (test.pbs) zatražena je po uputama iz poglavlja "Podnošenje posla".
Naredbe iz skripte hpc_test.wl izvršiti će mathematica. Sa prve dvije linije pokreće se broj subkernela koji odgovara broju zatraženih jezgara sa parametrom select (u ovom slučaju 8). Nastavak skripte izvršiti će 2 iste naredbe sa jednom bitnom razlikom. Naredbom ParallelTable računanje će se izvršiti na 8 jezgara dok će se u slučaju naredbe Table računanje izvršiti na 1 jezgri.
Zahtjev broja jezgara izveden je samo sa select parametrom. Takvom definicijom posla, PBS_NODEFILE varijabla sadrži popis svih dodijeljenih jezgara (na jednom ili više čvorova) te će se u uvijek pokrenuti odgovarajući broj subkernela.
#PBS -N test_math #PBS -q cpu #PBS -l select=8 #PBS -j oe #PBS -l math_lic=1 #PBS -l math_cpu=8 cd ${PBS_O_WORKDIR} module load scientific/mathematica/13.2.1 math -script hpc_test.wl
h = ReadList[Environment["PBS_NODEFILE"], "String"]; Map[LaunchKernels[KernelConfiguration[#,"KernelCommand" -> "/apps/scientific/mathematica/13.2.1/Executables/wolfram"]]&, h] t=AbsoluteTiming[Table[Length@FactorInteger[10^50+i], {i,20}]] Print["Vrijeme racunanja na jednoj jezgri=", t] t=AbsoluteTiming[ParallelTable[Length@FactorInteger[10^50+i], {i,20}]] Print["Vrijeme racunanja na osam jezgra=", t]