• Non ci sono risultati.

Nuovi compilatori e librerie matematiche

N/A
N/A
Protected

Academic year: 2021

Condividi "Nuovi compilatori e librerie matematiche"

Copied!
3
0
0

Testo completo

(1)

M. CREMONESI SUPERCALCOLO 45-47

BOLLETTINO DEL CILEA N. 105 FEBBRAIO 2007 45

Nuovi compilatori e librerie matematiche

Maurizio Cremonesi

CILEA, Segrate Abstract

L’ambiente applicativo dei cluster Intel/Xeon e AMD/Opteron è stato completato nei primi mesi di quest’anno con strumenti di sviluppo che permettono di installare i programmi nella modalità più efficiente possibile.

The program environment of the Intel/Xeon and AMD/Opteron clusters has been enriched within the first months of this year with developing software instruments that enable the installation of fast and reliable codes.

Keywords: Compilatori, Librerie Matematiche, Calcolo parallelo.

Il Cluster

Le rinnovate esigenze di calcolo dei ricerca-tori delle Università consorziate hanno portato il CILEA negli ultimi due anni a ospitare e ge-stire tre nuovi cluster basati su processori di ultima generazione e con caratteristiche e de-stinazioni d’uso particolari. Il cluster "più an-ziano", Avogadro, è costituito da 256 nodi bipro-cessore Intel/Xeon a 32 bit con una prestazione LINPACK di 1084 GFlop, perciò è stato incluso nella lista dei TOP500 di Giugno 2004 [1].

Successivamente sono stati installati un clu-ster di 72 processori AMD Opteron 848 2,2GHz e un cluster di 74 processori AMD Opteron 275 sempre a 2,2GHz 18 nodi.

Poiché difficilmente un cluster eterogeneo di queste dimensioni verrebbe impiegato nella sua interezza, in genere il ricercatore utilizzerà ogni volta una porzione di uno solo dei tre cluster omogenei da cui è composto.

La modalità di lavoro tipica consiste nel col-legarsi interattivamente all'indirizzo avoga-dro.cilea.it, preparare qui l'ambiente di lancio e quindi sottomettere l’esecuzione in batch sul cluster più adatto.

Per i dettagli sui cluster e il loro utilizzo si rimanda all’articolo di Arlandini [2] e all’apposita pagina WEB [3]. In questo articolo ci si limita a dare le informazioni minime sugli strumenti che permettono di sviluppare un codice di calcolo parallelo. In particolare si fa distinzione tra il cluster Intel/Xeon e i cluster AMD/Opteron, in quanto questi ultimi condividono compilatori e utilità via rete.

Compilatori

I compilatori installati sui cluster gestiti dal

CILEA sono prodotti da GNU Project [4], The Portland Group [5], Intel [6].

Per quanto riguarda i compilatori GNU, va da sé che sono presenti i compilatori gcc, g++, g77, che sono fin troppo popolari per essere qui descritti, mentre si forniscono alcuni dati sul compilatore Fortran 95, di recente disponibilità, che al CILEA è utilizzato anche nell’ambito dei corsi Fortran [7]. Infatti si è potuto verificare che G95, dopo alcuni anni di sviluppo, è ormai compatibile quasi del tutto con lo standard For-tran 95 e ha la particolarità di essere "software libero", ovvero soggetto a licenza GNU. In pra-tica questo significa che G95 può essere scari-cato da internet gratuitamente sulla propria macchina e utilizzato liberamente. Più precisa-mente la licenza GNU di questo tipo garantisce la possibilità di:

− utilizzare il programma, in questo caso il com-pilatore;

− studiare come funziona il programma e adat-tarlo ai propri scopi;

−distribuire il programma a chi si desidera; −migliorare il programma, in questo caso il

compilatore, e rendere pubbliche le modifiche, allo scopo dichiarato di rendere un servizio alla comunità.

Sui cluster CILEA, tuttavia, il compilatore G95 è installato solo in forma eseguibile. Il sor-gente e documentazione approfondita sono fa-cilmente ottenibili dal sito WEB [8].

Gli utenti interessati all’utilizzo di G95 pos-sono preparare l’ambiente di lavoro con i co-mandi:

− su INTEL/ Xeon

. /home/mcae/g95-install/env.sh (bash) source /home/mcae/g95-install/env.csh (tcsh)

(2)

M. CREMONESI SUPERCALCOLO 45-47

46 BOLLETTINO DEL CILEA N. 105 FEBBRAIO 2007

− su AMD/Opteron:

. /data/apps/script/bin/g95.sh (bash) source /data/ apps/script/bin/g95.csh (tcsh)

Non si intende esprimere in questo articolo giudizi di funzionalità ed efficienza tra questo e altri compilatori Fortran. Durante lo sviluppo di un codice ci si dovrebbe preoccupare il più pos-sibile della portabilità, nella convinzione che gli ambienti di calcolo e sviluppo cambiano più ve-locemente degli algoritmi. Può essere utile quindi provare un programma con tutti i com-pilatori disponibili, prima di considerare con-clusa la fase di sviluppo. In seguito, in partico-lare sui cluster ad alte prestazioni, l’instal-lazione produttiva andrebbe fatta con gli strumenti che promettono le migliori garanzie di efficienza e funzionalità. Infatti l’installazione di un’applicazione parallela su un cluster è come un puzzle, le cui numerose tessere devono inca-strarsi perfettamente; perciò è meglio attenersi di volta in volta a ciò che è già stato sperimen-tato essere la soluzione migliore.

Si informano gli interessati che sul sito ftp dell’ASET [9] ci sono i risultati dei test di fun-zionalità per alcuni compilatori Fortran, tra cui anche G95. Inoltre si può trovare sul sito WWW di G95 [10] una lista dei codici che funzionano con G95. Si segnala inoltre che può essere utile l’uso di G95 nello sviluppo dei programmi per il fatto che questo compilatore dispone di una co-moda interfaccia con l’ambiente operativo: il comportamento di un eseguibile realizzato con G95 può essere modificato semplicemente cam-biando il valore di alcune variabili d’ambiente. Per esempio:

G95_ENDIAN formato Endian per I/O non formattato.

G95_CHECKPOINT permette di produrre ad intervalli regolari un eseguibile adatto a riprendere l'esecuzione dall'ultimo checkpoint. −G95_FPU_ROUND regola la modalità di

arrotondamento dei calcoli.

G95_FPU_ZERODIV genera un’eccezione in caso di divisione per zero.

G95_FPU_OVERFLOW genera un’eccezione in caso di overflow.

G95_FPU_UNDERFLOW genera un’eccezione in caso di underflow.

G95_FPU_INEXACT genera un’eccezione in caso di perdite di precisione.

Gli strumenti Portland per lo sviluppo dei programmi ad alte prestazioni comprendono: − compilatori: pgf77, pgf90, pghpf, pgcc, pgCC; − librerie;

− debugger: pgdbg; − profiler: pgprof.

Questi strumenti sono disponibili sia sul clu-ster Xeon che sui cluclu-ster Opteron. Prima di usarli conviene però personalizzare l'ambiente con i comandi: − su INTEL/ Xeon . /home/mcae/script/bin/xpgi61.sh (bash) source /home/mcae/script/bin/xpgi61.csh (tcsh) − su AMD/Opteron . /data/apps/script/bin/xpgi64.sh (bash) source /data/apps/script/bin/xpgi64.csh (tcsh) Su AMD/Opteron al fine di generare eseguibili MPI con questi compilatori conviene usare anche:

. /data/apps/script/bin/xmpivmi.sh (bash) source /data/apps/script/bin/xmpivmi.csh (tcsh)

Si possono quindi usare i comandi mpif90p, mpif77p, mpiccp.

I compilatori Portland possono generare ese-guibili paralleli, oltre che con MPI, in tre diffe-renti modalità, che avranno più o meno efficacia a seconda dell’algoritmo implementato:

− parallelizzazione SMP automatica con l'opzione –Mconcur;

− parallelizzazione SMP con la sintassi OpenMP; − parallelizzazione DMP con HPF.

Dal sito ftp della Portland [11] si possono sca-ricare esempi di sorgenti parallelizzati in moda-lità automatica e in modamoda-lità OpenMP rispetti-vamente.

Documentazione sugli strumenti di sviluppo Portland può essere consultata sul cluster avo-gadro con il comando pgidoc o sul sito della Por-tland [5].

Gli applicativi Intel installati sono: − compilatori: ifort, icc;

− librerie: mkl; − debugger: idb.

Sono disponibili sia sul cluster Xeon che sui clu-ster Opteron. Prima di usarli conviene persona-lizzare l'ambiente con i comandi:

− su INTEL/ Xeon . /home/mcae/script/bin/xintel91.sh (bash) source /home/mcae/script/bin/xintel91.csh (tcsh) − su AMD/Opteron . /data/apps/script/bin/xintel91.sh (bash) source /data/apps/script/bin/xintel91.csh (tcsh)

Su AMD/Opteron, al fine di generare esegui-bili MPI con questi compilatori, conviene usare i comandi mpif90i, mpif77i, mpicci.

I compilatori Intel Fortran e C/C++ possono parallelizzare i programmi su nodi multiproces-sore in modo automatico e con le direttive OpenMP; si avvantaggiano anche dell'Hyper-Threading e multi-core dei processori.

Il compilatore Intel C/C++ utilizza il tool OpenSource Eclipse (http://www.eclipse.org/) per

(3)

M. CREMONESI SUPERCALCOLO 45-47

BOLLETTINO DEL CILEA N. 105 FEBBRAIO 2007 47

lo sviluppo di programmi (usare iccec per lan-ciare Eclipse).

Il compilatore Intel Fortran supporta in parte la sintassi 2003; in particolare:

− componenti allocatable dei tipi personalizzati, − argomenti di tipo allocatable,

− valori allocatable delle funzioni, − istruzione ed attributo PROTECTED, − istruzione ed attributo VOLATILE,

− attributo INTENT per i sinonimi (pointer), − rinomina degli operatori personalizzati in

USE.

La documentazione è accessibile dal cluster avogadro con il comando inteldoc oppure al sito della Intel [6].

Librerie

Gli strumenti di sviluppo PGI, sui cluster sia Intel che AMD, includono tra l’altro le libre-rie 3F, BLAS, LAPACK; per i dettagli si faccia riferimento al documento Fortran Reference, accessibile da avogadro con il comando pgidoc.

Per l’ambiente di sviluppo Intel è instal-lata la libreria MKL, che comprende anche: BLAS (1, 2, 3), LAPACK, FFT (1D, 2D, 3D), convoluzione, solutore per matrici sparse, fun-zioni statistiche. Come per i compilatori, la do-cumentazione è disponibile su avogadro con il comando inteldoc o sul sito della Intel [6].

Allo scopo di venire incontro alla necessità di portabilità dei codici utente, il CILEA rende di-sponibili su particolari nodi le librerie NAG e IMSL. Per il loro utilizzo si contatti il servizio di assistenza agli utenti di calcolo intensivo all’indirizzo assistenze_hpc@cilea.it.

La libreria NAG è installata nella versione NAG Parallel Library Release 3, su nodi bipro-cessore sia Intel che AMD/Opteron, e utilizza il compilatore Fortran Portland. La libreria pa-rallela NAG è stata sviluppata con l’obiettivo di essere il più possibile compatibile con la tradi-zionale libreria Fortran NAG e di sfruttare al meglio il parallelismo dei nodi di calcolo. Essa basa il suo funzionamento parallelo su una gri-glia virtuale di processori a 2 dimensioni. Il pa-radigma di parallelizzazione è SPMD basato su MPI.

La libreria NAG parallela comprende tra l’altro: solutori per matrici dense, a banda e sparse; autovalori; ottimizzazione di problemi non lineari dei minimi quadrati e generali; FFT; integrazione numerica; numeri casuali.

Per i dettagli si consulti il sito NAG [12]. La libreria IMSL è installata nella versione Parallel Fortran 5 su nodo biprocessore

AMD/Opteron; anche questa libreria richiede il compilatore Fortran Portland.

Questa libreria è prodotta dalla Visual Nu-merics e distribuita dalla GMSL [13]. La libreria parallela IMSL comprende le ben note librerie matematiche e statistiche. Essa include gli algo-ritmi sviluppati per il Fortran 77 e 90 e utilità che permettono di semplificare l’utilizzo della libreria ScaLAPACK.

Per i dettagli sulla libreria si possono con-sultare i siti WEB indicati in bibliografia.

Bibliografia

[1] TOP500 Supercomputing sites. URL: http://www.top500.org/

[2] Claudio Arlandini, “GOLGI: un cluster Opteron per il CILEA”, Bollettino del CI-LEA, n. 101, Aprile 2006

[3] Come usare L'Opteron Cluster del CILEA Golgi.cilea.it.

URL: http://www.supercomputing.it/At_Cile a/golgi_eng.htm

[4] GNU Project Home Page. URL: http://www.gnu.org

[5] The Portland Group Home Page. URL: http://www.pgroup.com [6] Intel Home Page.

URL: http://www.intel.com [7] Corsi CILEA Home Page.

URL: http://www.cilea.it/corsi_CILEA/index. htm

[8] G95 Home Page.

URL: http://www.g95.org/

[9] Academic Services and Emerging Technologies (ASET), Compiler Diagnostic Test Sets.

URL: http://ftp.aset.psu.edu/pub/ger/fortra n/test/results.txt

[10] Lista codici compilabili con g95.

URL: http://www.g95.org/g95_status.html [11] Esempi Portland di parallelizzazione.

URL: ftp://ftp.pgroup.com/pub/training/lin pack.tar

ftp://ftp.pgroup.com/pub/openmpbmk.tar [12] The NAG Parallel Library.

URL: http://www.nag.co.uk/numeric/fd/F Ddescription.asp

[13] Visual Numerics (VNI) Home Page. URL: http://www.vni.com/index.html [14] Elenco delle funzioni libreria IMSL.

URL: http://www.vni.com/books/dod/pdf/ FortranFC.pdf

[15] Descrizione libreria IMSL parallela. URL:http://www.vni.com/products/imsl/ fortran/keyFeatures.html

Riferimenti

Documenti correlati

• Inoltre, se il programma ` e grande e il file eseguibile ` e compilato a partire da pi` u file sorgente in cartelle diverse, diventa estrema- mente complicato tener traccia di

Nell’ambito del progetto AQUASYN (www.aqua-syn.eu) , finanziato dal Programma “Lifelong Learning Programme Centralized”– Sottoprogramma ERASMUS, il cui principale

 questo è dovuto al fatto che la strategia bottom-up sfrutta in modo maggiore l’informazione costituita dalla stringa di input (simboli di lookahead), perché la riduzione parte

( documento unico di regolarità contributiva). Ai sensi del “Programma 100 della relazione revisionale programmatica”, pubblicata sul sito del Comune di Napoli

 aver conseguito, nell’esercizio precedente alla presentazione della richiesta per l’accesso al credito d’imposta in esame, almeno il 70% dei ricavi complessivamente dichiarati

Per fortuna l’informatore decide di aiutare ancora l’ispettore fornendogli indizi proprio attraverso il computer. Il numero

Finalmente arrivano informazioni sul complice della Signora Violet, l’abilissima ladra arrestata da Numerik.. Gli indizi sono contenuti in una busta chiusa: l’ispettore Numerik la

 Per ottenere lo spazio occupato da una directory e tutte le sue sottodirectory è possibile utilizzare il commando du.