Săptămâna trecută am predat tema la Programare Paralelă, temă ce presupunea găsirea numerelor Devlali prime(în engleză self primes) între un interval A, B dat și folosind un număr variabil de threaduri(de la 1 la 8) în limbajele C(pThreads și OpenMP), Java și Prolog.
Scopul final era să calculez speedul și eficiența. Scriu codul, introduc A, B și numarul de threaduri pe care să le folosească din linia de comandă, generez executabilele, afișez timpul și realizez că aș putea să îmi automatizez sarcina de a rula și a nota în fișiere timpi de execuție în funcție de numărul de threaduri folosite.
Dacă tot am hotărât că o să rulez pe un laptop quad-core cu Hyper-threading cu Ubuntu 18.04 aș putea să îmi fac 4 scripturi în Bash, fiecare pentru câte o cerință și la final un script principal care să genereze executabile folosind fișiere sursă iar apoi să pornească pe rând fiecare din cele 4 scripturi.
Cea mai mare utilitate a scriptului am observat-o atunci când a durat aproape 5 ore să îmi genereze raportul pentru codul scris în Java. În prima implementare foloseam BigInteger pentru numere și efortul de a crea obiectele era foarte mare spre deosebire implementarea cu ajutorul primitivei long – pentru intervalul 2 – 400000 și folosind un singur thread pe BigInteger dura aproximativ 45 minute iar pe long 5 minute.
Am ales bash deoarece doream să învăț ceva nou, la fel de bine puteam folosi python pentru asta.
Codul se găsește aici.
Eu consider că este util să înveți scripting dacă vrei să îți faci viața mai ușoară.

Răspunde-i lui Matei Anulează răspunsul