Questo è il comando mpicxx.openmpi che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
mpicxx -- Apre il compilatore wrapper MPI C++;
SINTASSI
mpicxx [-showme|-showme:compila|-showme:link] ...
VERSIONI
--fammi vedere
Questa opzione è disponibile in diverse varianti (vedi sotto). Nessuna delle varianti
invoca il compilatore sottostante; tutti forniscono informazioni su come il sottostante
il compilatore sarebbe stato invocato se --fammi vedere non è stato utilizzato. La base --fammi vedere
opzione restituisce la riga di comando che verrebbe eseguita per compilare il programma.
NOTA: Se un argomento non relativo al nome file viene passato sulla riga di comando, il -fammi vedere opzione
andrete a non è un visualizzare eventuali flag aggiuntivi. Ad esempio, sia "mpicxx --showme" che
"mpicxx --showme my_source.c" mostrerà tutti i flag forniti dal wrapper. Ma
"mpicxx --showme -v" mostrerà solo il nome del compilatore sottostante e "-v".
--showme:compila
Emetti i flag del compilatore che sarebbero stati forniti al compilatore C++.
--mostrami:collegamento
Output dei flag del linker che sarebbero stati forniti al compilatore C++.
--showme:comando
Emette il comando del compilatore C++ sottostante (che può essere uno o più token).
--showme:incdirs
Emette un elenco delimitato da spazi (ma non decorato) di directory che
il compilatore wrapper avrebbe fornito al compilatore C++ sottostante per indicare
dove si trovano i file di intestazione pertinenti.
--showme:libdirs
Emette un elenco delimitato da spazi (ma non decorato) di directory che
il compilatore wrapper avrebbe fornito al linker sottostante per indicare dove
si trovano le relative biblioteche.
--showme:lib
Emette un elenco delimitato da spazi (ma per il resto non decorato) di nomi di librerie che
il compilatore wrapper avrebbe usato per collegare un'applicazione. Ad esempio: "mpi
open-rte open-pal util".
--showme:versione
Emette il numero di versione di Open MPI.
--showme:aiuto
Invia un breve messaggio di aiuto all'utilizzo.
Vedi la pagina man per il tuo compilatore C++ sottostante per altre opzioni che possono essere passate
tramite mpicxx.
DESCRIZIONE
Concettualmente, il ruolo di questi comandi è abbastanza semplice: aggiungi in modo trasparente rilevanti
flag del compilatore e del linker alla riga di comando dell'utente che sono necessari per compilare / collegare
Aprire i programmi MPI e quindi richiamare il compilatore sottostante per eseguire effettivamente il
comando.
In quanto tali, questi comandi sono spesso indicati come compilatori "wrapper" perché lo fanno
non compilare o collegare effettivamente le applicazioni stesse; aggiungono solo flag nella riga di comando
e invoca il compilatore di back-end.
sfondo
Open MPI è composto da tre livelli software: OPAL (Open Portable Access Layer), ORTE
(Open Run-Time Environment) e OMPI (Open MPI). Ci sono compilatori wrapper per ciascuno
strato; il wrapper di ogni livello si collega solo alle librerie rilevanti per quel livello.
Nello specifico, ogni livello fornisce i seguenti compilatori di wrapper:
OPAL
opale e opale++
LUOGHI
ortecca e ortec++
WIPO
mpicca, mpi++, mpixx, mpiCC (solo su sistemi con file system con distinzione tra maiuscole e minuscole), e
forte (e i suoi nomi legacy/deprecati mpif77 e mpif90). Nota che mpi++,
mpixxe mpiCC invocano tutti lo stesso compilatore C++ sottostante con le stesse opzioni.
Tutti sono forniti come compatibilità con altre implementazioni MPI.
Fortran Note
Il compilatore wrapper Fortran per MPI (forte, e i suoi nomi legacy/deprecati mpif77 e
mpif90) può compilare e collegare applicazioni MPI che utilizzano qualsiasi/tutti gli MPI Fortran
attacchi: mpif.h, l' mpi modulo, e il mpi_f08 modulo (supponendo che Open MPI sia stato installato
con supporto per ciascuno di questi attacchi Fortran). Nello specifico: non è più necessario
utilizzare diversi compilatori wrapper per applicazioni che utilizzano mpif.h vs applicazioni che
Usa il mpi modulo -- basta usare forte per tutte le applicazioni Fortran MPI.
Nota, tuttavia, che il compilatore Fortran potrebbe richiedere ulteriori opzioni della riga di comando per
imporre uno specifico dialetto Fortran. Ad esempio, in alcune versioni dell'IBM XLF
compilatore, se xlf90 è il compilatore Fortran sottostante, -qfisso potrebbe essere necessario compilare
file sorgente Fortran a formato fisso.
Infine, nota quello forte non sarà operativo e restituirà un errore di utilizzo se Fortran
il supporto non è stato integrato in MP Ilayer.
Panoramica
mpixx è un comodo wrapper per il compilatore C++ sottostante. Traduzione di un Open
Il programma MPI richiede il collegamento delle librerie specifiche di Open MPI che potrebbero non risiedere
in una delle directory di ricerca standard di ld(1). Spesso richiede anche l'inclusione
di file di intestazione che potrebbero anche non essere trovati in una posizione standard.
mpixx passa i suoi argomenti al compilatore C++ sottostante insieme a -I, -L e -l
opzioni richieste dai programmi Open MPI.
Il Team Open MPI fortemente incoraggia l'uso dei compilatori wrapper invece di tentare di
collegarsi manualmente alle librerie Open MPI. Ciò consente l'implementazione specifica di Open
MPI per cambiare senza forzare le modifiche alle direttive del linker nei Makefile degli utenti. Infatti,
l'insieme specifico di flag e librerie usati dai compilatori wrapper dipende da come Open
MPI è stato configurato e costruito; i valori possono variare tra le diverse installazioni del
stessa versione di Open MPI.
In effetti, poiché gli involucri sono semplicemente gusci sottili sopra un compilatore sottostante, non c'è
sono pochi, pochissimi motivi convincenti non è un usare mpixx. Quando non è possibile utilizzare
gli involucri direttamente, il -showme:compila e - mostrami: collegamento le opzioni dovrebbero essere usate per
determinare quali flag avrebbero utilizzato i wrapper. Per esempio:
shell$ cc -c file1.c `mpicc -showme:compila`
shell$ cc -c file2.c `mpicc -showme:compila`
shell$ cc file1.o file2.o `mpicc -showme:link` -o mio_mpi_programma
NOTE
È possibile rendere i compilatori wrapper multi-lib consapevoli. Cioè, le biblioteche e
include specificate possono differire in base ai flag del compilatore specificati (ad esempio, con il
compilatori GNU su Linux, è possibile utilizzare un percorso di libreria diverso se viene visualizzato -m32 rispetto a -m64
essere visto). Questo non è il comportamento predefinito in una build standard, ma può essere attivato
(ad esempio, in un pacchetto binario che fornisce supporto sia a 32 che a 64 bit). Maggiori informazioni
può essere trovato a:
https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
Usa mpicxx.openmpi online utilizzando i servizi onworks.net