• Non ci sono risultati.

Corsi per il calcolo scientifico intensivo

N/A
N/A
Protected

Academic year: 2021

Condividi "Corsi per il calcolo scientifico intensivo"

Copied!
3
0
0

Testo completo

(1)

M.CREMONESI SUPERCALCOLO 18-20

18 BOLLETTINO DEL CILEA N.108OTTOBRE 2007

Corsi per il calcolo scientifico intensivo

Maurizio Cremonesi

CILEA, Segrate

Abstract

Ricercatori e progettisti si avvalgono, per supportare le proprie idee e realizzare i progetti più avanzati, di codici applicativi, spesso commerciali, altre volte di carattere più accademico, che tuttavia non sono sufficienti, assai difficilmente potrebbero, a esaurire le svariate esigenze di calcolo di tutte le aree di ricerca e applicative. Ricercatori e tecnici esigenti necessariamente quindi utilizzano strumenti di sviluppo software per convertire le proprie esigenze di calcolo in numeri o grafici, che concretizzino i concetti e le idee in via di realizzazione. Il CILEA mette a disposizione dell'utenza, ma più in generale di tutti quanti sono interessati, l'esperienza dei propri esperti in programmazione e calcolo parallelo per diffondere le conoscenze e le tecniche necessarie per realizzare codici di calcolo affidabili ed efficienti.

CILEA offers to users and whoever may be interested the experience of its experts in software developing and parallel computing with the aim of spreading the knowledge and the techniques suitable to realize robust and efficient computing programs.

Keywords: Corsi di programmazione, Corsi di calcolo parallelo, Corsi XML, E-learning

Richiesta e offerta di calcolo

Tra le offerte più apprezzate, che il CILEA mette a disposizione della propria utenza dei servizi di calcolo intensivo, figura la disponibilità di codici applicativi commerciali e non, che il personale CILEA mantiene costantemente aggiornati e fruibili. Questi applicativi sono importanti per molte attività di ricerca, anche solo come riferimento per il confronto con risul-tati ottenuti in altro modo, ma evidentemente non possono risolvere tutte le esigenze di cal-colo e modellizzazione dei ricercatori, che ne-cessariamente utilizzano anche strumenti più flessibili, adatti a modellizzare meglio, dal punto di vista computazionale, le loro teorie e ipotesi. Tante volte il problema viene risolto con strumenti interattivi quali Mathematica, MATLAB o altri similari, che hanno il vantaggio di un utilizzo relativamente semplice e intuitivo e la comodità di permettere una rappre-sentazione grafica dei numeri generati. Tutto bene finché non si arriva al punto di dover con-validare i risultati con il conforto di un dettaglio maggiore, che tante volte significa un aumento esponenziale di memoria e di calcolo. Allora iniziano i problemi, quando il sistema di calcolo, finora utilizzato, diventa improvvisamente

insufficiente. Perfino in questi anni, in cui i normali calcolatori da scrivania hanno potenze notevolmente maggiori dei supercalcolatori che si utilizzavano solo 20 anni fa, anzi forse proprio per questo, la ricerca e le attività manifatturiere esigono livelli di dettaglio e di precisione che tante volte sono ottenibili in pratica solo utilizzando macchine di calcolo multi processore.

Fortunatamente, i moderni linguaggi di pro-grammazione sono sufficientemente flessibili da permettere la conversione delle operazioni di calcolo dalla forma algebrica più naturale alla sintassi propria del linguaggio in modo abba-stanza semplice; inoltre le tecniche di pro-grammazione sono ora sviluppate in modo da permettere lo sfruttamento delle molteplici ri-sorse di calcolo che si hanno a disposizione in modo relativamente sicuro ed efficiente. Tutto questo però purché si abbia padronanza delle caratteristiche del linguaggio che si utilizza e dei numerosi parametri di cui occorre tener conto nello sviluppo di un codice di calcolo tec-nico-scientifico.

Quando infine il programma è ben abbozzato, prima di pensare alla sua realizzazione pratica è necessario capire con quali strumenti si possono

(2)

M.CREMONESI SUPERCALCOLO 18-20

BOLLETTINO DEL CILEA N.108OTTOBRE 2007 19

visualizzare i risultati che saranno generati; spesso il programma produce una gran quantità di numeri la cui distribuzione e relazioni reciproche sono importanti per la corretta interpretazione dei risultati. La soluzione pro-posta dal CILEA da alcuni anni si basa sullo sfruttamento delle svariate tecnologie, alcune ormai ben consolidate e diffuse, che sono state sviluppate per lo scambio dei dati via WEB e che vanno sotto il nome generico di strumenti XML.

Se è sufficientemente chiaro lo scopo dei corsi di programmazione nei linguaggi FORTRAN e C++, che il CILEA offre, sono numerose le per-sone che ancora dubitano dell'utilità di parteci-pare ai corsi di introduzione al calcolo parallelo, che pure il CILEA da molti anni ha in calenda-rio. Questo fatto, che in passato poteva essere spiegato dalla scarsa diffusione delle architet-ture di calcolo parallele, oggi è abbastanza cu-rioso, dal momento che ormai quasi tutti i cal-colatori da scrivania, compresi i portatili, hanno almeno 2 o più core; ovvero le unità di calcolo sono interamente duplicate e sfruttabili separatamente. A chiunque ancora dubiti della possibilità di sfruttare il parallelismo insito nel proprio PC con codici non pre-confezionati, l'au-tore promette di fornire indicazioni utili a rea-lizzare con successo semplici applicazioni di calcolo parallelo su queste piattaforme.

I corsi di programmazione del CILEA gene-ralmente sono basati sull'utilizzo di applicativi public domain, preferibilmente open-source; caratteristica apprezzata da molti e resa possi-bile dalla buona qualità dei prodotti messi gra-tuitamente a disposizione della comunità dai molti ricercatori appassionati della propria ma-teria di studio.

Per tutti i corsi sono previste lezioni teoriche affiancate da esempi e sessioni quotidiane di laboratorio, in cui viene data allo studente la possibilità di familiarizzare, attraverso lo svi-luppo di semplici codici, con i concetti presen-tati.

Programmare in FORTRAN

Il corso FORTRAN organizzato dal CILEA si realizza in due momenti di addestramento complementari: “Introduzione al FORTRAN” e "Il FORTRAN per il calcolo scientifico inten-sivo". Il primo per dare a chiunque lo desideri le basi per poter interpretare i programmi che si incontrano più frequentemente nella pratica tecnico-scientifica, il secondo per fornire al par-tecipante le indicazioni utili a sviluppare da sé i programmi in questo linguaggio.

Il nome del corso, privo di riferimenti espliciti alla versione, è ben motivato dalla maturità raggiunta dai compilatori attualmente disponi-bili, ormai tutti conformi alla sintassi 95, che rende del tutto fuori luogo parlare ancora di FORTRAN 77 o FORTRAN 90, se non per ra-gioni storiche. Nel corso non viene neppure tra-scurato il nuovo standard 2003, anche se i com-pilatori che permetterebbero di programmare effettivamente in questo nuovo linguaggio non sono ancora disponibili.

Programmare in C++

Anche il corso C++ offerto dal CILEA si pro-pone di avvicinare l'allievo a questo linguaggio di programmazione fornendogli una prepara-zione che si sviluppa in due momenti di ap-prendimento complementari. Il primo modulo, "Introduzione alla programmazione procedurale in C++", presenta la sintassi elementare del linguaggio e fornisce le basi per scrivere e interpretare programmi procedurali scritti in C e in C++; si rivolge a tutti, anche a quelle per-sone che, prive di esperienze di programma-zione, decidano di avvicinarsi a essa tramite questo linguaggio. L'insegnamento si sviluppa tramite una costante trattazione parallela dei due linguaggi C e C++, evidenziandone simili-tudini e differenze. Il secondo modulo, "Intro-duzione alla programmazione orientata agli oggetti in C++", si propone di presentare la tec-nica della programmazione orientata agli oggetti (OOP) sfruttando le possibilità offerte dal linguaggio. Strumenti quali polimorfismo, ere-ditarietà e incapsulamento dei dati vengono affrontati e discussi anche con numerosi esempi pratici. All'interno del corso sono inoltre affron-tate tematiche inerenti alla programmazione in ambito scientifico tramite il C++ e in particolare l'uso di librerie specifiche.

Calcolo parallelo

Il corso “Introduzione alle tecniche di calcolo parallelo e distribuito”, organizzato per diffon-dere la conoscenza delle tecniche di calcolo ad alte prestazioni, si rivolge a programmatori esperti che vogliano sfruttare al massimo livello le potenzialità degli elaboratori a più unità di calcolo.

Le tecniche illustrate sono pertanto sfruttabili per la programmazione efficiente sia di proces-sori multi-core, sia di server multiprocesproces-sori a memoria condivisa, sia di piattaforme di calcolo distribuito, siano esse cluster di PC connessi da LAN o macchine con centinaia di processori connessi da una rete ad alte prestazioni.

(3)

M.CREMONESI SUPERCALCOLO 18-20

20 BOLLETTINO DEL CILEA N.108OTTOBRE 2007

Vengono dunque spiegate soprattutto le ca-ratteristiche e le funzionalità dei due pilastri del calcolo parallelo attuale, ovvero la libreria MPI per il calcolo distribuito e la libreria OpenMP per il calcolo parallelo a memoria condivisa. Non sono comunque trascurate altre tecniche di programmazione parallela, meno diffuse per vari motivi, ma comunque di notevole importanza e utilità in ambiti opportuni e per specifiche problematiche.

Introduzione a XML

Anche il corso “Elementi di XML per trattare e presentare i dati” è basato su applicazioni in-dipendenti da prodotti commerciali e introduce lo studente al linguaggio proprio del mondo XML, presentando alcune semplici realizzazioni sviluppabili da chiunque con applicativi di facile reperibilità. Esso è rivolto a tutti coloro che devono gestire informazioni e dati da conservare nel tempo o da comunicare via internet e a tutti coloro che sono interessati a capire e saperne di più su questo argomento.

L'ultimo decennio ha visto la nascita e lo svi-luppo tumultuoso del WWW, strumento ormai indispensabile per scambiare risorse, comuni-care informazioni e raggiungere quanti più utenti o clienti possibile nel più breve tempo e nel modo più economico. Capire gli strumenti che permettono la diffusione e la penetrazione delle informazioni attraverso il WEB significa non solo avere la possibilità di diffondere la propria immagine nella rete delle reti, ma an-che usufruire del WWW in modo più consape-vole e critico. Se le tecnologie HTML, relativa-mente semplici ed economiche, hanno permesso il rapido sviluppo del WWW in tutto il mondo e in tutti i campi, la quantità di informazioni at-tualmente accessibili e la velocità con cui queste vengono prodotte richiedono la conservazione delle stesse in formati che meglio si prestano alla loro gestione nel tempo. A questo scopo il W3C, il consorzio che si occupa di sviluppare le tecnologie per il WWW, ha sviluppato un sistema di convenzioni basato sul formato XML di rappresentazione delle informazioni, attualmente il miglior candidato a risolvere i problemi di conservazione, comunicazione e rintracciabilità delle informazioni. Soprattutto per questo motivo il CILEA ha scelto le tecniche XML proponendole per l'uso da parte degli utenti del calcolo scientifico intensivo. Inoltre, il formato XML per sua stessa natura è di immediata comprensione e non richiede una preparazione specifica preliminare. Esso può essere utilizzato con qualunque applicazione per

garantire una gestione dei dati razionale ed efficiente. Non è facile tuttavia capire come le tecnologie XML possano essere utilizzate nelle proprie applicazioni e perché magari un applicativo basato su XML possa risultare più conveniente rispetto a un software analogo basato su formati di memorizzazione proprietari. Il corso offerto dal CILEA intende colmare questa lacuna presentando le conven-zioni su cui si basano i sistemi XML e le loro principali caratteristiche, anche con la realiz-zazione di semplici applicazioni.

Potenziamento dell'offerta

Le edizioni dei corsi presentati vengono pro-grammate regolarmente [1] e di norma sono tenute nei locali della sede di Segrate del CI-LEA. Su richiesta possono essere realizzate edizioni in altri periodi temporali e in altre sedi: per questo si faccia domanda alla Segreteria Tecnica [2] del CILEA.

Allo scopo anche di diffondere il più capillar-mente possibile la conoscenza delle migliori tecniche di programmazione in ambito scienti-fico, il CILEA ha in cantiere la realizzazione di versioni on-line dei propri corsi, che saranno offerti su piattaforme e--learning a tutti coloro che vogliono sfruttare al meglio la loro connes-sione alla rete. Novità su questo argomento verranno presentate su queste pagine al più presto.

Bibliografia

[1] Corsi per il calcolo ad alte prestazioni. URL: http://www.cilea.it/index.php?id=cor

sihpc

[2] Per informazioni e iscrizioni ai corsi CILEA. URL: http://www.cilea.it/index.php?id=mail

Riferimenti

Documenti correlati

We tested the occurrence of intra-instar cannibalism using L2, L3 and L4 larvae and assessed the influence of larval density, duration of the contact period among larvae and

• device sono le funzioni chiamate dalla GPU che girano sulla GPU. • la sintassi per chiamare funzioni host e device ` e

• Ogni processo deve essere consapevole di quanti sono i processi in

• Ogni processo deve essere conoscere quanti sono i processi in

– Preleva dalla memoria l'istruzione da eseguire; l'istruzione viene prelevato dall'indirizzo di memoria che si trova in PC; il contenuto di tale cella di memoria viene posto in IR.

Accordo di Programma Ministero dello Sviluppo Economico – ENEA Area: Produzione e fonti energetiche. Tema: Nuovo Nucleare

Nel primo caso i siti di legame delle glicoproteine dell’envelope virale per il recettore (CD4) e i corecettori cellulari (CXCR4 e CCR5), che intervengono nel legame e nella

MPI_Cart_rank: sulla base della topologia definita all’interno del comunicatore, ritorna il rank del processo con un fissato set di coordinate cartesiane.. [IN] nnodes: numero