Ragassuoli,
conoscete un linguaggio di programmazione moderno che si presta bene per elaborazioni di calcolo numerico spinte, al di la del fortran ???![]()
Ragassuoli,
conoscete un linguaggio di programmazione moderno che si presta bene per elaborazioni di calcolo numerico spinte, al di la del fortran ???![]()
Ciao Ery.
Qualche esempio sui tipi di calcolo da effettuare? Magari per facilitare gli aiuti.
Io so che ci sono i linguaggi di scripting matematici. Tuttavia per applicazioni pesanti hanno la possibilità di integrare funzioni scritte in C o in Fortran per ridurre i problemi di efficienza dovuti in generale ai linguaggi di scripting. In pratica unisci i vantaggi dello scripting in termini di scrittura del codice alla potenza ad esempio del C.
Slackware current
Acer Aspire 5720, Intel Core 2 Duo T7300, Mobile Intel Graphics Media Accelerator X3100, ram 2GB DDR2, monitor 15.4", 160GB HDD, 802.11a/b/g wlan.
Non conosco i dettagli dei calcoli, sono elaborazioni su reti elettriche.
Abbiamo gia dei programmi di c con chiamate al fortran e lo si utlizza perché i dati da elaborare vengono presi da un db.
siccome il fortran non accede, almeno non nelle vecchie versioni, ai db, si è passati per il c.
Magari c'era qualche linguaggio su cui pensare di fare un porting che faccia tutto, magari espandibile con liberie esterne, senza la necessita di passare per altri linguaggi...
Non so, le mie conoscenze si fermano qui.![]()
Ultima modifica di giberg; 12-02-11 alle 00:15
Slackware current
Acer Aspire 5720, Intel Core 2 Duo T7300, Mobile Intel Graphics Media Accelerator X3100, ram 2GB DDR2, monitor 15.4", 160GB HDD, 802.11a/b/g wlan.
Il problema è che python è comodo perché è un linguaggio interpretato ma è lento per fare calcoli pesanti. Anche in questo caso esiste la possibilità di integrare le parti critiche con estensioni C o C++ per poter velocizzare i punti critici.
http://it.wikipedia.org/wiki/Python#Prestazioni
Ultima modifica di giberg; 12-02-11 alle 17:39
Slackware current
Acer Aspire 5720, Intel Core 2 Duo T7300, Mobile Intel Graphics Media Accelerator X3100, ram 2GB DDR2, monitor 15.4", 160GB HDD, 802.11a/b/g wlan.
Effettivamente in giro, mi sono reso conto che, nonostante non mancano le esigenze di elaborazioni massicce, sopratutto nella ricerca,
in giro c'è una gran 'casino' di linguaggi o pseudo tali, come si può leggere qui
http://en.wikipedia.org/wiki/List_of...lysis_software
http://en.wikipedia.org/wiki/Categor...ming_languages
mi sembra strano che nessuno si prenda la briga di 'aggiornarli'.
Forse non mi sono informato sulle ultime versioni di fortran, magari già fanno qualcosa di nuovo.
Sicuro, so che supporta il multithread, però l'accesso alle basi di dati mi sembra una cosa quasi scontata da supportare.
Però, ripeto, non avrò approfondito ancora bene la cosa...
Cmq, come sempre, grazie a tutti quelli intervenuti![]()
Non so cosa tu intenda che nessuno si prenda la briga di aggiornarli.
Quali caratteristiche deve avere per te un linguaggio di calcolo?
Non conosco tutti i software di quella lista. Io uso R per il calcolo statistico, software open sempre più usato. Ha un sacco di pacchetti già pronti per qualsiasi tipo di calcolo statistico e non solo.
C'è pure un progetto che sviluppa pacchetti per R per calcoli su dati genetici.
Però le funzioni che richiedono calcoli pesanti perché fanno uso di molti cicli vengono in parte scritte in C o in Fortran e poi integrate. Questo perché per i cicli in R non sono velocissimi (ma questo credo sia un difetto dei linguaggi di scripting, non me ne intendo molto). L'utente comunque se usa pacchetti già predisposti non deve preoccuparsi di programmare in C. Tuttavia chi ha bisogno di crearsi pacchetti personalizzati per calcoli pesanti è bene che integri con librerie in C o Fortran per le parti che richiedono molti cicli. Però non è nativamente multithread, anche se ci sono delle librerie che possono lavorare con calcoli paralleli. C'è un progetto commerciale che fornisce una versione preparata per il multithread.
E come ogni linguaggio statistico legge le basi di dati.
Ma anche Matlab legge le basi di dati e così molti alti software/linguaggi.
Quindi dipende tu cosa intendi per moderno.![]()
Slackware current
Acer Aspire 5720, Intel Core 2 Duo T7300, Mobile Intel Graphics Media Accelerator X3100, ram 2GB DDR2, monitor 15.4", 160GB HDD, 802.11a/b/g wlan.
Mah...niente intendevo orientati agli oggetti, magari con strutture dati più flessibili e con accesso ai dati di un db.
Però, come avevo detto su, non mi sono ancora informato benissimo, quindi senza dubbio mi sarò perso molte cose
Anche perché chi c'è ora su questa parte di progetto ha scarse conoscenze di Fortran e mi sono preoccupato io di cercare info sulla possibilità di 'accelerare' i calcoli e magari risolvere il problema di accesso ai dati del db. Quindi sono ancora in corso d'opera. Poi, come spesso capita in queste cose, trattandosi di un progetto molto vecchio e ben oleato, parlare di porting e/o aggiornamento è una cosa un'attimino delicata e lunga nel tempo.
Grazie mille giberg![]()
Sicuramente i linguaggi di scripting sono facili da utilizzare anche senza grosse conoscenze di programmazione e sono orientati agli oggetti.
Prima ho citato Matlab: è un linguaggio (che non ho mai usato) che ha delle alternative open source come Octave e Scilab. Anch'essi hanno la possibilità di interfacciarsi a basi di dati e utilizzare routine scritte in Fortran.
Perché non pensare ad uno di questi e richiamare alcune parti in Fortran che già avete? Così demandate il calcolo pesante a codice compilato e tutto il resto al linguaggio di scripting.
Per calcoli matematici si usano software di questo tipo, quindi è quella la strada direi.
Slackware current
Acer Aspire 5720, Intel Core 2 Duo T7300, Mobile Intel Graphics Media Accelerator X3100, ram 2GB DDR2, monitor 15.4", 160GB HDD, 802.11a/b/g wlan.
Segnalibri