Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_buildinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_buildinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_buildinfo.h	(revision 97)
@@ -0,0 +1,31 @@
+#ifndef ATL_INSTINFO_H
+   #define ATL_INSTINFO_H
+
+#define ATL_ARCH "PPCG564"
+#define ATL_INSTFLAGS "-1 0 -a 1"
+#define ATL_F2CDEFS "-DATL_NoF77"
+#define ATL_ARCHDEFS "-DATL_OS_Linux -DATL_ARCH_PPCG5 -DATL_CPUMHZ=3200 -DATL_USE64BITS -DATL_GAS_PPC"
+#define ATL_DKCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_DKC "ppu-gcc"
+#define ATL_SKCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_SKC "ppu-gcc"
+#define ATL_DMCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_DMC "ppu-gcc"
+#define ATL_SMCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_SMC "ppu-gcc"
+#define ATL_ICCFLAGS "-DL2SIZE=4194304 -I/export/home/stud/bucicoiu.mihai/ATLAS/cell_build/include -I/export/home/stud/bucicoiu.mihai/ATLAS//include -I/export/home/stud/bucicoiu.mihai/ATLAS//include/contrib -DATL_NoF77 -DATL_OS_Linux -DATL_ARCH_PPCG5 -DATL_CPUMHZ=3200 -DATL_USE64BITS -DATL_GAS_PPC -DATL_NCPU=4 -mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_ICC "ppu-gcc"
+#define ATL_F77FLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_F77 "ppu-gcc"
+#define ATL_DKCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SKCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_DMCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SMCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_ICCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_F77VERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SYSINFO "Linux cell-qs22-2.grid.pub.ro 2.6.18-128.el5 #1 SMP Wed Dec 17 11:58:23 EST 2008 ppc64 ppc64 ppc64 GNU/Linux"
+#define ATL_DATE    "Tue Jan  5 09:06:19 EET 2010"
+#define ATL_UNAM    "bucicoiu.mihai"
+#define ATL_VERS    "3.8.3"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  80
+   #define MB 80
+   #define NB 80
+   #define KB 80
+   #define NBNB 6400
+   #define MBNB 6400
+   #define MBKB 6400
+   #define NBKB 6400
+   #define NB2 160
+   #define NBNB2 12800
+
+   #define ATL_MulByNB(N_) ((N_) * 80)
+   #define ATL_DivByNB(N_) ((N_) / 80)
+   #define ATL_MulByNBNB(N_) ((N_) * 6400)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cacheedge.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cacheedge.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cacheedge.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CACHEEDGE_H
+   #define ATLAS_CACHEEDGE_H
+   #define CacheEdge 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_CMV_H
+#define ATLAS_CMV_H
+
+#define ATL_L1mvelts 4096
+#include "atlas_cmvN.h"
+#include "atlas_cmvT.h"
+#include "atlas_cmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_cmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 192; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_cr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_cr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_cr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_CR1_H
+#define ATLAS_CR1_H
+
+#define ATL_L1r1elts 4096
+#define ATL_r1MU 2
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_csNKB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_csNKB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_csNKB.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CSNKB_H
+   #define ATLAS_CSNKB_H
+   #define ATL_CSNKB 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_csysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_csysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_csysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_CSYSINFO_H
+   #define ATL_CSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 2048
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584199
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  24
+   #define MB 24
+   #define NB 24
+   #define KB 24
+   #define NBNB 576
+   #define MBNB 576
+   #define MBKB 576
+   #define NBKB 576
+   #define NB2 48
+   #define NBNB2 1152
+
+   #define ATL_MulByNB(N_) ((N_) * 24)
+   #define ATL_DivByNB(N_) ((N_) / 24)
+   #define ATL_MulByNBNB(N_) ((N_) * 576)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_DMV_H
+#define ATLAS_DMV_H
+
+#define ATL_L1mvelts 4096
+#include "atlas_dmvN.h"
+#include "atlas_dmvT.h"
+#include "atlas_dmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_dmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 192; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_DR1_H
+#define ATLAS_DR1_H
+
+#define ATL_L1r1elts 3112
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dsysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dsysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dsysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_DSYSINFO_H
+   #define ATL_DSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584214
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_dtrsmXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_dtrsmXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_dtrsmXover.h	(revision 97)
@@ -0,0 +1,4 @@
+#define TRSM_LUNN_Xover 72
+#define TRSM_LUTN_Xover 72
+#define TRSM_LLNN_Xover 72
+#define TRSM_LLTN_Xover 72
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_pthreads.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_pthreads.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_pthreads.h	(revision 97)
@@ -0,0 +1,7 @@
+#ifndef ATLAS_NTHREADS_H
+   #define ATLAS_NTHREADS_H
+
+   #include "pthread.h"
+   #define ATL_NTHREADS 4
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_sNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_sNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_sNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  64
+   #define MB 64
+   #define NB 64
+   #define KB 64
+   #define NBNB 4096
+   #define MBNB 4096
+   #define MBKB 4096
+   #define NBKB 4096
+   #define NB2 128
+   #define NBNB2 8192
+
+   #define ATL_MulByNB(N_) ((N_) << 6)
+   #define ATL_DivByNB(N_) ((N_) >> 6)
+   #define ATL_MulByNBNB(N_) ((N_) << 12)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_smv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_smv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_smv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_SMV_H
+#define ATLAS_SMV_H
+
+#define ATL_L1mvelts 8192
+#include "atlas_smvN.h"
+#include "atlas_smvT.h"
+#include "atlas_smvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_smvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_smvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_smvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_smvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_smvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_smvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_smvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 384; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_smvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_smvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_smvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_sr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_sr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_sr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_SR1_H
+#define ATLAS_SR1_H
+
+#define ATL_L1r1elts 5079
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_ssysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_ssysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_ssysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_SSYSINFO_H
+   #define ATL_SSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 8192
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584199
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_strsmXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_strsmXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_strsmXover.h	(revision 97)
@@ -0,0 +1,4 @@
+#define TRSM_LUNN_Xover 192
+#define TRSM_LUTN_Xover 192
+#define TRSM_LLNN_Xover 192
+#define TRSM_LLTN_Xover 192
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_trsmNB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_trsmNB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_trsmNB.h	(revision 97)
@@ -0,0 +1,12 @@
+#ifndef ATLAS_TRSMNB_H
+   #define ATLAS_TRSMNB_H
+
+   #ifdef SREAL
+      #define TRSM_NB 16
+   #elif defined(DREAL)
+      #define TRSM_NB 12
+   #else
+      #define TRSM_NB 4
+   #endif
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_type.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_type.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_type.h	(revision 97)
@@ -0,0 +1,20 @@
+#ifndef ATLAS_TYPE_H
+#define ATLAS_TYPE_H
+
+#define ATL_isize 4
+#define ATL_ssize 4
+#define ATL_dsize 8
+#define ATL_csize 8
+#define ATL_zsize 16
+#define ATL_iMulBySize(N_) ((((N_)) << 2))
+#define ATL_sMulBySize(N_) ((((N_)) << 2))
+#define ATL_dMulBySize(N_) ((((N_)) << 3))
+#define ATL_cMulBySize(N_) ((((N_)) << 3))
+#define ATL_zMulBySize(N_) ((((N_)) << 4))
+#define ATL_iDivBySize(N_) ((N_) >> 2)
+#define ATL_sDivBySize(N_) ((N_) >> 2)
+#define ATL_cDivBySize(N_) ((N_) >> 3)
+#define ATL_dDivBySize(N_) ((N_) >> 3)
+#define ATL_zDivBySize(N_) ((N_) >> 4)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  48
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zdNKB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zdNKB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zdNKB.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_ZDNKB_H
+   #define ATLAS_ZDNKB_H
+   #define ATL_ZDNKB 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_ZMV_H
+#define ATLAS_ZMV_H
+
+#define ATL_L1mvelts 2048
+#include "atlas_zmvN.h"
+#include "atlas_zmvT.h"
+#include "atlas_zmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvN.h	(revision 97)
@@ -0,0 +1,34 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 4
+#define ATL_mvNNU 4
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvpagesize
+   #define ATL_mvpagesize ATL_DivBySize(4096)
+#endif
+#ifndef ATL_mvntlb
+   #define ATL_mvntlb 56
+#endif
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = (ATL_L1mvelts - (ATL_mvNMU<<1)) / ((ATL_mvNMU<<1)+1); \
+   if (ATL_mvpagesize > (lda_)) \
+   { \
+      *(mb_) = (ATL_mvpagesize / (lda_)) * ATL_mvntlb; \
+      if ( *(mb_) < *(nb_) ) *(nb_) = *(mb_); \
+   } \
+   else if (ATL_mvntlb < *(nb_)) *(nb_) = ATL_mvntlb; \
+   if (*(nb_) > ATL_mvNNU) *(nb_) = (*(nb_) / ATL_mvNNU) * ATL_mvNNU; \
+   else *(nb_) = ATL_mvNNU; \
+   *(mb_) = (ATL_L1mvelts - *(nb_) * (ATL_mvNMU+1)) / (*(nb_)+2); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = (*(mb_) / ATL_mvNMU) * ATL_mvNMU; \
+   else *(mb_) = ATL_mvNMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_zmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 96; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_ZR1_H
+#define ATLAS_ZR1_H
+
+#define ATL_L1r1elts 1024
+#define ATL_r1MU 2
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/atlas_zsysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/atlas_zsysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/atlas_zsysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_ZSYSINFO_H
+   #define ATL_ZSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584214
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/cXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/cXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/cXover.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef CXOVER_H
+#define CXOVER_H
+
+#define ATL_3NB 240
+#define NN_MNK_M 115520
+#define NN_MNK_N 1352000
+#define NN_MNK_MN 243200
+#define NN_MNK_K 176720
+#define NN_MNK_GE 148877
+#define NT_MNK_M 72000
+#define NT_MNK_N 115520
+#define NT_MNK_MN 153600
+#define NT_MNK_K 46080
+#define NT_MNK_GE 103823
+#define TN_MNK_M 46080
+#define TN_MNK_N 7938000
+#define TN_MNK_MN 96000
+#define TN_MNK_K 7938000
+#define TN_MNK_GE 2197000
+#define TT_MNK_M 46080
+#define TT_MNK_N 7938000
+#define TT_MNK_MN 96000
+#define TT_MNK_K 224720
+#define TT_MNK_GE 103823
+#define C2R_K 9223372036854775807
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/cmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/cmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/cmm.h	(revision 97)
@@ -0,0 +1,51 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  80
+   #define MB 80
+   #define NB 80
+   #define KB 80
+   #define NBNB 6400
+   #define MBNB 6400
+   #define MBKB 6400
+   #define NBKB 6400
+   #define NB2 160
+   #define NBNB2 12800
+
+   #define ATL_MulByNB(N_) ((N_) * 80)
+   #define ATL_DivByNB(N_) ((N_) / 80)
+   #define ATL_MulByNBNB(N_) ((N_) * 6400)
+void ATL_cJIK80x80x80TN80x80x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK80x80x80TN80x80x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK80x80x80TN80x80x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_sJIK80x80x80TN80x80x0_a1_b1
+   #define rNBmm_b0 ATL_sJIK80x80x80TN80x80x0_a1_b0
+   #define rNBmm_bX ATL_sJIK80x80x80TN80x80x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/dXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/dXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/dXover.h	(revision 97)
@@ -0,0 +1,26 @@
+#ifndef DXOVER_H
+#define DXOVER_H
+
+#define ATL_3NB 72
+#define NN_MNK_M 12030336
+#define NN_MNK_N 24482400
+#define NN_MNK_MN 9322560
+#define NN_MNK_K 3557400
+#define NN_MNK_GE 1225043
+#define NT_MNK_M 13680600
+#define NT_MNK_N 12030336
+#define NT_MNK_MN 9223372036854775807
+#define NT_MNK_K 235224
+#define NT_MNK_GE 970299
+#define TN_MNK_M 2046336
+#define TN_MNK_N 41627736
+#define TN_MNK_MN 4678848
+#define TN_MNK_K 3557400
+#define TN_MNK_GE 1225043
+#define TT_MNK_M 23904096
+#define TT_MNK_N 8439576
+#define TT_MNK_MN 9317376
+#define TT_MNK_K 960000
+#define TT_MNK_GE 970299
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/dmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/dmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/dmm.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  24
+   #define MB 24
+   #define NB 24
+   #define KB 24
+   #define NBNB 576
+   #define MBNB 576
+   #define MBKB 576
+   #define NBKB 576
+   #define NB2 48
+   #define NBNB2 1152
+
+   #define ATL_MulByNB(N_) ((N_) * 24)
+   #define ATL_DivByNB(N_) ((N_) / 24)
+   #define ATL_MulByNBNB(N_) ((N_) * 576)
+   #define NBmm ATL_dJIK24x24x24TN24x24x0_a1_b1
+   #define NBmm_b1 ATL_dJIK24x24x24TN24x24x0_a1_b1
+   #define NBmm_b0 ATL_dJIK24x24x24TN24x24x0_a1_b0
+   #define NBmm_bX ATL_dJIK24x24x24TN24x24x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/sXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/sXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/sXover.h	(revision 97)
@@ -0,0 +1,26 @@
+#ifndef SXOVER_H
+#define SXOVER_H
+
+#define ATL_3NB 192
+#define NN_MNK_M 9096256
+#define NN_MNK_N 37356544
+#define NN_MNK_MN 132153344
+#define NN_MNK_K 26132544
+#define NN_MNK_GE 4741632
+#define NT_MNK_M 553536
+#define NT_MNK_N 26132544
+#define NT_MNK_MN 9223372036854775807
+#define NT_MNK_K 1081600
+#define NT_MNK_GE 2197000
+#define TN_MNK_M 7311616
+#define TN_MNK_N 136048896
+#define TN_MNK_MN 65167360
+#define TN_MNK_K 56791296
+#define TN_MNK_GE 31255875
+#define TT_MNK_M 7311616
+#define TT_MNK_N 37945600
+#define TT_MNK_MN 33370112
+#define TT_MNK_K 1806336
+#define TT_MNK_GE 4741632
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/smm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/smm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/smm.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  64
+   #define MB 64
+   #define NB 64
+   #define KB 64
+   #define NBNB 4096
+   #define MBNB 4096
+   #define MBKB 4096
+   #define NBKB 4096
+   #define NB2 128
+   #define NBNB2 8192
+
+   #define ATL_MulByNB(N_) ((N_) << 6)
+   #define ATL_DivByNB(N_) ((N_) >> 6)
+   #define ATL_MulByNBNB(N_) ((N_) << 12)
+   #define NBmm ATL_sJIK64x64x64TN64x64x0_a1_b1
+   #define NBmm_b1 ATL_sJIK64x64x64TN64x64x0_a1_b1
+   #define NBmm_b0 ATL_sJIK64x64x64TN64x64x0_a1_b0
+   #define NBmm_bX ATL_sJIK64x64x64TN64x64x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/zXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/zXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/zXover.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef ZXOVER_H
+#define ZXOVER_H
+
+#define ATL_3NB 144
+#define NN_MNK_M 10800
+#define NN_MNK_N 43200
+#define NN_MNK_MN 23040
+#define NN_MNK_K 69312
+#define NN_MNK_GE 27000
+#define NT_MNK_M 10800
+#define NT_MNK_N 4800
+#define NT_MNK_MN 23040
+#define NT_MNK_K 27648
+#define NT_MNK_GE 3375
+#define TN_MNK_M 69312
+#define TN_MNK_N 69312
+#define TN_MNK_MN 23040
+#define TN_MNK_K 69312
+#define TN_MNK_GE 54872
+#define TT_MNK_M 43200
+#define TT_MNK_N 10800
+#define TT_MNK_MN 23040
+#define TT_MNK_K 106032
+#define TT_MNK_GE 27000
+#define C2R_K 9223372036854775807
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas/zmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas/zmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas/zmm.h	(revision 97)
@@ -0,0 +1,51 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  48
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+void ATL_zJIK48x48x48TN48x48x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_dJIK48x48x48TN48x48x0_a1_b1
+   #define rNBmm_b0 ATL_dJIK48x48x48TN48x48x0_a1_b0
+   #define rNBmm_bX ATL_dJIK48x48x48TN48x48x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_buildinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_buildinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_buildinfo.h	(revision 97)
@@ -0,0 +1,31 @@
+#ifndef ATL_INSTINFO_H
+   #define ATL_INSTINFO_H
+
+#define ATL_ARCH "PPCG564"
+#define ATL_INSTFLAGS "-1 0 -a 1"
+#define ATL_F2CDEFS "-DATL_NoF77"
+#define ATL_ARCHDEFS "-DATL_OS_Linux -DATL_ARCH_PPCG5 -DATL_CPUMHZ=3200 -DATL_USE64BITS -DATL_GAS_PPC"
+#define ATL_DKCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_DKC "ppu-gcc"
+#define ATL_SKCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_SKC "ppu-gcc"
+#define ATL_DMCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_DMC "ppu-gcc"
+#define ATL_SMCFLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_SMC "ppu-gcc"
+#define ATL_ICCFLAGS "-DL2SIZE=4194304 -I/export/home/stud/bucicoiu.mihai/ATLAS/cell_build/include -I/export/home/stud/bucicoiu.mihai/ATLAS//include -I/export/home/stud/bucicoiu.mihai/ATLAS//include/contrib -DATL_NoF77 -DATL_OS_Linux -DATL_ARCH_PPCG5 -DATL_CPUMHZ=3200 -DATL_USE64BITS -DATL_GAS_PPC -DATL_NCPU=4 -mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_ICC "ppu-gcc"
+#define ATL_F77FLAGS "-mpowerpc64 -maltivec -mabi=altivec -mcpu=cell -mtune=cell -O3 -m64"
+#define ATL_F77 "ppu-gcc"
+#define ATL_DKCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SKCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_DMCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SMCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_ICCVERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_F77VERS "ppu-gcc (GCC) 4.1.1"
+#define ATL_SYSINFO "Linux cell-qs22-2.grid.pub.ro 2.6.18-128.el5 #1 SMP Wed Dec 17 11:58:23 EST 2008 ppc64 ppc64 ppc64 GNU/Linux"
+#define ATL_DATE    "Tue Jan  5 09:06:19 EET 2010"
+#define ATL_UNAM    "bucicoiu.mihai"
+#define ATL_VERS    "3.8.3"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  80
+   #define MB 80
+   #define NB 80
+   #define KB 80
+   #define NBNB 6400
+   #define MBNB 6400
+   #define MBKB 6400
+   #define NBKB 6400
+   #define NB2 160
+   #define NBNB2 12800
+
+   #define ATL_MulByNB(N_) ((N_) * 80)
+   #define ATL_DivByNB(N_) ((N_) / 80)
+   #define ATL_MulByNBNB(N_) ((N_) * 6400)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cacheedge.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cacheedge.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cacheedge.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CACHEEDGE_H
+   #define ATLAS_CACHEEDGE_H
+   #define CacheEdge 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_CMV_H
+#define ATLAS_CMV_H
+
+#define ATL_L1mvelts 4096
+#include "atlas_cmvN.h"
+#include "atlas_cmvT.h"
+#include "atlas_cmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cmvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_cmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 192; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_cmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_cr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_cr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_cr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_CR1_H
+#define ATLAS_CR1_H
+
+#define ATL_L1r1elts 4096
+#define ATL_r1MU 2
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_csNKB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_csNKB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_csNKB.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_CSNKB_H
+   #define ATLAS_CSNKB_H
+   #define ATL_CSNKB 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_csysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_csysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_csysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_CSYSINFO_H
+   #define ATL_CSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 2048
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584199
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  24
+   #define MB 24
+   #define NB 24
+   #define KB 24
+   #define NBNB 576
+   #define MBNB 576
+   #define MBKB 576
+   #define NBKB 576
+   #define NB2 48
+   #define NBNB2 1152
+
+   #define ATL_MulByNB(N_) ((N_) * 24)
+   #define ATL_DivByNB(N_) ((N_) / 24)
+   #define ATL_MulByNBNB(N_) ((N_) * 576)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_DMV_H
+#define ATLAS_DMV_H
+
+#define ATL_L1mvelts 4096
+#include "atlas_dmvN.h"
+#include "atlas_dmvT.h"
+#include "atlas_dmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dmvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_dmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 192; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_dmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_DR1_H
+#define ATLAS_DR1_H
+
+#define ATL_L1r1elts 3112
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dsysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dsysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dsysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_DSYSINFO_H
+   #define ATL_DSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584214
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_dtrsmXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_dtrsmXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_dtrsmXover.h	(revision 97)
@@ -0,0 +1,4 @@
+#define TRSM_LUNN_Xover 72
+#define TRSM_LUTN_Xover 72
+#define TRSM_LLNN_Xover 72
+#define TRSM_LLTN_Xover 72
Index: proiecte/hpl/atlas_compiled/include/atlas_pthreads.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_pthreads.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_pthreads.h	(revision 97)
@@ -0,0 +1,7 @@
+#ifndef ATLAS_NTHREADS_H
+   #define ATLAS_NTHREADS_H
+
+   #include "pthread.h"
+   #define ATL_NTHREADS 4
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_sNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_sNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_sNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  64
+   #define MB 64
+   #define NB 64
+   #define KB 64
+   #define NBNB 4096
+   #define MBNB 4096
+   #define MBKB 4096
+   #define NBKB 4096
+   #define NB2 128
+   #define NBNB2 8192
+
+   #define ATL_MulByNB(N_) ((N_) << 6)
+   #define ATL_DivByNB(N_) ((N_) >> 6)
+   #define ATL_MulByNBNB(N_) ((N_) << 12)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_smv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_smv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_smv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_SMV_H
+#define ATLAS_SMV_H
+
+#define ATL_L1mvelts 8192
+#include "atlas_smvN.h"
+#include "atlas_smvT.h"
+#include "atlas_smvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_smvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_smvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_smvN.h	(revision 97)
@@ -0,0 +1,21 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 32
+#define ATL_mvNNU 1
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#define ATL_AXPYMV
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvNNU<<1)) / ((ATL_mvNNU<<1)+1); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = ATL_mvNMU*( *(mb_)/ATL_mvNMU ); \
+   else *(mb_) = ATL_mvNMU; \
+   *(nb_) = ATL_mvNNU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_smvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_smvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_smvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_smvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 384; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_smvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_smvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_smvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 2
+#define ATL_mvTNU 16
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_smvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_sr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_sr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_sr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_SR1_H
+#define ATLAS_SR1_H
+
+#define ATL_L1r1elts 5079
+#define ATL_r1MU 16
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_ssysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_ssysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_ssysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_SSYSINFO_H
+   #define ATL_SSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 8192
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584199
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_strsmXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_strsmXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_strsmXover.h	(revision 97)
@@ -0,0 +1,4 @@
+#define TRSM_LUNN_Xover 192
+#define TRSM_LUTN_Xover 192
+#define TRSM_LLNN_Xover 192
+#define TRSM_LLTN_Xover 192
Index: proiecte/hpl/atlas_compiled/include/atlas_trsmNB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_trsmNB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_trsmNB.h	(revision 97)
@@ -0,0 +1,12 @@
+#ifndef ATLAS_TRSMNB_H
+   #define ATLAS_TRSMNB_H
+
+   #ifdef SREAL
+      #define TRSM_NB 16
+   #elif defined(DREAL)
+      #define TRSM_NB 12
+   #else
+      #define TRSM_NB 4
+   #endif
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_type.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_type.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_type.h	(revision 97)
@@ -0,0 +1,20 @@
+#ifndef ATLAS_TYPE_H
+#define ATLAS_TYPE_H
+
+#define ATL_isize 4
+#define ATL_ssize 4
+#define ATL_dsize 8
+#define ATL_csize 8
+#define ATL_zsize 16
+#define ATL_iMulBySize(N_) ((((N_)) << 2))
+#define ATL_sMulBySize(N_) ((((N_)) << 2))
+#define ATL_dMulBySize(N_) ((((N_)) << 3))
+#define ATL_cMulBySize(N_) ((((N_)) << 3))
+#define ATL_zMulBySize(N_) ((((N_)) << 4))
+#define ATL_iDivBySize(N_) ((N_) >> 2)
+#define ATL_sDivBySize(N_) ((N_) >> 2)
+#define ATL_cDivBySize(N_) ((N_) >> 3)
+#define ATL_dDivBySize(N_) ((N_) >> 3)
+#define ATL_zDivBySize(N_) ((N_) >> 4)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zNCmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zNCmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zNCmm.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  48
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zdNKB.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zdNKB.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zdNKB.h	(revision 97)
@@ -0,0 +1,4 @@
+#ifndef ATLAS_ZDNKB_H
+   #define ATLAS_ZDNKB_H
+   #define ATL_ZDNKB 0
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zmv.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zmv.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zmv.h	(revision 97)
@@ -0,0 +1,9 @@
+#ifndef ATLAS_ZMV_H
+#define ATLAS_ZMV_H
+
+#define ATL_L1mvelts 2048
+#include "atlas_zmvN.h"
+#include "atlas_zmvT.h"
+#include "atlas_zmvS.h"
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zmvN.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zmvN.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zmvN.h	(revision 97)
@@ -0,0 +1,34 @@
+#ifndef ATLAS_MVN_H
+#define ATLAS_MVN_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvNMU 4
+#define ATL_mvNNU 4
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvpagesize
+   #define ATL_mvpagesize ATL_DivBySize(4096)
+#endif
+#ifndef ATL_mvntlb
+   #define ATL_mvntlb 56
+#endif
+
+#define ATL_GetPartMVN(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = (ATL_L1mvelts - (ATL_mvNMU<<1)) / ((ATL_mvNMU<<1)+1); \
+   if (ATL_mvpagesize > (lda_)) \
+   { \
+      *(mb_) = (ATL_mvpagesize / (lda_)) * ATL_mvntlb; \
+      if ( *(mb_) < *(nb_) ) *(nb_) = *(mb_); \
+   } \
+   else if (ATL_mvntlb < *(nb_)) *(nb_) = ATL_mvntlb; \
+   if (*(nb_) > ATL_mvNNU) *(nb_) = (*(nb_) / ATL_mvNNU) * ATL_mvNNU; \
+   else *(nb_) = ATL_mvNNU; \
+   *(mb_) = (ATL_L1mvelts - *(nb_) * (ATL_mvNMU+1)) / (*(nb_)+2); \
+   if (*(mb_) > ATL_mvNMU) *(mb_) = (*(mb_) / ATL_mvNMU) * ATL_mvNMU; \
+   else *(mb_) = ATL_mvNMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zmvS.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zmvS.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zmvS.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVS_H
+#define ATLAS_MVS_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvSMU 4
+#define ATL_mvSNU 32
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+#ifndef ATL_mvTNU
+   #include "atlas_zmvT.h"
+#endif
+#define ATL_GetPartSYMV(A_, lda_, mb_, nb_) \
+{ \
+   *(nb_) = ATL_mvSMU; \
+   *(mb_) = 96; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zmvT.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zmvT.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zmvT.h	(revision 97)
@@ -0,0 +1,23 @@
+#ifndef ATLAS_MVT_H
+#define ATLAS_MVT_H
+
+#include "atlas_misc.h"
+
+#define ATL_mvTMU 4
+#define ATL_mvTNU 8
+#ifndef ATL_L1mvelts
+   #define ATL_L1mvelts ((3*ATL_L1elts)>>2)
+#endif
+#ifndef ATL_mvNNU
+   #include "atlas_zmvN.h"
+#endif
+
+#define ATL_GetPartMVT(A_, lda_, mb_, nb_) \
+{ \
+   *(mb_) = (ATL_L1mvelts - (ATL_mvTMU<<1)) / ((ATL_mvTMU<<1)+1); \
+   if (*(mb_) > ATL_mvTNU) *(mb_) = (*(mb_)/ATL_mvTNU)*ATL_mvTNU; \
+   else (*mb_) = ATL_mvTNU; \
+   *(nb_) = ATL_mvTMU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zr1.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zr1.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zr1.h	(revision 97)
@@ -0,0 +1,16 @@
+#ifndef ATLAS_ZR1_H
+#define ATLAS_ZR1_H
+
+#define ATL_L1r1elts 1024
+#define ATL_r1MU 2
+#define ATL_r1NU 1
+
+#define ATL_GetPartR1(A_, lda_, mb_, nb_) \
+{ \
+   (mb_) = (ATL_L1r1elts - (ATL_r1NU+ATL_r1NU)) / (ATL_r1NU+ATL_r1NU+1); \
+   if ((mb_) > ATL_r1MU) (mb_) = ATL_r1MU*((mb_)/ATL_r1MU); \
+   else (mb_) = ATL_r1MU; \
+   (nb_) = ATL_r1NU; \
+}
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/atlas_zsysinfo.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/atlas_zsysinfo.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/atlas_zsysinfo.h	(revision 97)
@@ -0,0 +1,11 @@
+#ifndef ATL_ZSYSINFO_H
+   #define ATL_ZSYSINFO_H
+
+#define ATL_MULADD
+#define ATL_L1elts 4096
+#define ATL_fplat  10
+#define ATL_lbnreg 18
+#define ATL_mmnreg 33
+#define ATL_nkflop 3584214
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/cXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/cXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/cXover.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef CXOVER_H
+#define CXOVER_H
+
+#define ATL_3NB 240
+#define NN_MNK_M 115520
+#define NN_MNK_N 1352000
+#define NN_MNK_MN 243200
+#define NN_MNK_K 176720
+#define NN_MNK_GE 148877
+#define NT_MNK_M 72000
+#define NT_MNK_N 115520
+#define NT_MNK_MN 153600
+#define NT_MNK_K 46080
+#define NT_MNK_GE 103823
+#define TN_MNK_M 46080
+#define TN_MNK_N 7938000
+#define TN_MNK_MN 96000
+#define TN_MNK_K 7938000
+#define TN_MNK_GE 2197000
+#define TT_MNK_M 46080
+#define TT_MNK_N 7938000
+#define TT_MNK_MN 96000
+#define TT_MNK_K 224720
+#define TT_MNK_GE 103823
+#define C2R_K 9223372036854775807
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/cblas.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/cblas.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/cblas.h	(revision 97)
@@ -0,0 +1,596 @@
+#ifndef CBLAS_H
+
+#ifndef CBLAS_ENUM_DEFINED_H
+   #define CBLAS_ENUM_DEFINED_H
+   enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102 };
+   enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113,
+                         AtlasConj=114};
+   enum CBLAS_UPLO  {CblasUpper=121, CblasLower=122};
+   enum CBLAS_DIAG  {CblasNonUnit=131, CblasUnit=132};
+   enum CBLAS_SIDE  {CblasLeft=141, CblasRight=142};
+#endif
+
+#ifndef CBLAS_ENUM_ONLY
+#define CBLAS_H
+#define CBLAS_INDEX int
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS functions (complex are recast as routines)
+ * ===========================================================================
+ */
+float  cblas_sdsdot(const int N, const float alpha, const float *X,
+                    const int incX, const float *Y, const int incY);
+double cblas_dsdot(const int N, const float *X, const int incX, const float *Y,
+                   const int incY);
+float  cblas_sdot(const int N, const float  *X, const int incX,
+                  const float  *Y, const int incY);
+double cblas_ddot(const int N, const double *X, const int incX,
+                  const double *Y, const int incY);
+/*
+ * Functions having prefixes Z and C only
+ */
+void   cblas_cdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_cdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+void   cblas_zdotu_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotu);
+void   cblas_zdotc_sub(const int N, const void *X, const int incX,
+                       const void *Y, const int incY, void *dotc);
+
+
+/*
+ * Functions having prefixes S D SC DZ
+ */
+float  cblas_snrm2(const int N, const float *X, const int incX);
+float  cblas_sasum(const int N, const float *X, const int incX);
+
+double cblas_dnrm2(const int N, const double *X, const int incX);
+double cblas_dasum(const int N, const double *X, const int incX);
+
+float  cblas_scnrm2(const int N, const void *X, const int incX);
+float  cblas_scasum(const int N, const void *X, const int incX);
+
+double cblas_dznrm2(const int N, const void *X, const int incX);
+double cblas_dzasum(const int N, const void *X, const int incX);
+
+
+/*
+ * Functions having standard 4 prefixes (S D C Z)
+ */
+CBLAS_INDEX cblas_isamax(const int N, const float  *X, const int incX);
+CBLAS_INDEX cblas_idamax(const int N, const double *X, const int incX);
+CBLAS_INDEX cblas_icamax(const int N, const void   *X, const int incX);
+CBLAS_INDEX cblas_izamax(const int N, const void   *X, const int incX);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 1 BLAS routines
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (s, d, c, z)
+ */
+void cblas_sswap(const int N, float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_scopy(const int N, const float *X, const int incX,
+                 float *Y, const int incY);
+void cblas_saxpy(const int N, const float alpha, const float *X,
+                 const int incX, float *Y, const int incY);
+void catlas_saxpby(const int N, const float alpha, const float *X,
+                  const int incX, const float beta, float *Y, const int incY);
+void catlas_sset
+   (const int N, const float alpha, float *X, const int incX);
+
+void cblas_dswap(const int N, double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_dcopy(const int N, const double *X, const int incX,
+                 double *Y, const int incY);
+void cblas_daxpy(const int N, const double alpha, const double *X,
+                 const int incX, double *Y, const int incY);
+void catlas_daxpby(const int N, const double alpha, const double *X,
+                  const int incX, const double beta, double *Y, const int incY);
+void catlas_dset
+   (const int N, const double alpha, double *X, const int incX);
+
+void cblas_cswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_ccopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_caxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_caxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_cset
+   (const int N, const void *alpha, void *X, const int incX);
+
+void cblas_zswap(const int N, void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zcopy(const int N, const void *X, const int incX,
+                 void *Y, const int incY);
+void cblas_zaxpy(const int N, const void *alpha, const void *X,
+                 const int incX, void *Y, const int incY);
+void catlas_zaxpby(const int N, const void *alpha, const void *X,
+                  const int incX, const void *beta, void *Y, const int incY);
+void catlas_zset
+   (const int N, const void *alpha, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefix only
+ */
+void cblas_srotg(float *a, float *b, float *c, float *s);
+void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
+void cblas_srot(const int N, float *X, const int incX,
+                float *Y, const int incY, const float c, const float s);
+void cblas_srotm(const int N, float *X, const int incX,
+                float *Y, const int incY, const float *P);
+
+void cblas_drotg(double *a, double *b, double *c, double *s);
+void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
+void cblas_drot(const int N, double *X, const int incX,
+                double *Y, const int incY, const double c, const double s);
+void cblas_drotm(const int N, double *X, const int incX,
+                double *Y, const int incY, const double *P);
+
+
+/*
+ * Routines with S D C Z CS and ZD prefixes
+ */
+void cblas_sscal(const int N, const float alpha, float *X, const int incX);
+void cblas_dscal(const int N, const double alpha, double *X, const int incX);
+void cblas_cscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_zscal(const int N, const void *alpha, void *X, const int incX);
+void cblas_csscal(const int N, const float alpha, void *X, const int incX);
+void cblas_zdscal(const int N, const double alpha, void *X, const int incX);
+
+/*
+ * Extra reference routines provided by ATLAS, but not mandated by the standard
+ */
+void cblas_crotg(void *a, void *b, void *c, void *s);
+void cblas_zrotg(void *a, void *b, void *c, void *s);
+void cblas_csrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const float c, const float s);
+void cblas_zdrot(const int N, void *X, const int incX, void *Y, const int incY,
+                 const double c, const double s);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 2 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *X, const int incX, const float beta,
+                 float *Y, const int incY);
+void cblas_sgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const float alpha,
+                 const float *A, const int lda, const float *X,
+                 const int incX, const float beta, float *Y, const int incY);
+void cblas_strmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+void cblas_strsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *A, const int lda, float *X,
+                 const int incX);
+void cblas_stbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const float *A, const int lda,
+                 float *X, const int incX);
+void cblas_stpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const float *Ap, float *X, const int incX);
+
+void cblas_dgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *X, const int incX, const double beta,
+                 double *Y, const int incY);
+void cblas_dgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const double alpha,
+                 const double *A, const int lda, const double *X,
+                 const int incX, const double beta, double *Y, const int incY);
+void cblas_dtrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+void cblas_dtrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *A, const int lda, double *X,
+                 const int incX);
+void cblas_dtbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const double *A, const int lda,
+                 double *X, const int incX);
+void cblas_dtpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const double *Ap, double *X, const int incX);
+
+void cblas_cgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_cgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ctrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ctrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ctbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ctpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+void cblas_zgemv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *X, const int incX, const void *beta,
+                 void *Y, const int incY);
+void cblas_zgbmv(const enum CBLAS_ORDER Order,
+                 const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
+                 const int KL, const int KU, const void *alpha,
+                 const void *A, const int lda, const void *X,
+                 const int incX, const void *beta, void *Y, const int incY);
+void cblas_ztrmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+void cblas_ztrsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *A, const int lda, void *X,
+                 const int incX);
+void cblas_ztbsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const int K, const void *A, const int lda,
+                 void *X, const int incX);
+void cblas_ztpsv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
+                 const int N, const void *Ap, void *X, const int incX);
+
+
+/*
+ * Routines with S and D prefixes only
+ */
+void cblas_ssymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_ssbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const float alpha, const float *A,
+                 const int lda, const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const float alpha, const float *Ap,
+                 const float *X, const int incX,
+                 const float beta, float *Y, const int incY);
+void cblas_sger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const float alpha, const float *X, const int incX,
+                const float *Y, const int incY, float *A, const int lda);
+void cblas_ssyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *A, const int lda);
+void cblas_sspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, float *Ap);
+void cblas_ssyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A,
+                const int lda);
+void cblas_sspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const float *X,
+                const int incX, const float *Y, const int incY, float *A);
+
+void cblas_dsymv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dsbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const double alpha, const double *A,
+                 const int lda, const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dspmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const double alpha, const double *Ap,
+                 const double *X, const int incX,
+                 const double beta, double *Y, const int incY);
+void cblas_dger(const enum CBLAS_ORDER Order, const int M, const int N,
+                const double alpha, const double *X, const int incX,
+                const double *Y, const int incY, double *A, const int lda);
+void cblas_dsyr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *A, const int lda);
+void cblas_dspr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, double *Ap);
+void cblas_dsyr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A,
+                const int lda);
+void cblas_dspr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const double *X,
+                const int incX, const double *Y, const int incY, double *A);
+
+
+/*
+ * Routines with C and Z prefixes only
+ */
+void cblas_chemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_chpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_cgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_cher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_chpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const float alpha, const void *X,
+                const int incX, void *A);
+void cblas_cher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_chpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+void cblas_zhemv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhbmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const int K, const void *alpha, const void *A,
+                 const int lda, const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zhpmv(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const int N, const void *alpha, const void *Ap,
+                 const void *X, const int incX,
+                 const void *beta, void *Y, const int incY);
+void cblas_zgeru(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zgerc(const enum CBLAS_ORDER Order, const int M, const int N,
+                 const void *alpha, const void *X, const int incX,
+                 const void *Y, const int incY, void *A, const int lda);
+void cblas_zher(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X, const int incX,
+                void *A, const int lda);
+void cblas_zhpr(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                const int N, const double alpha, const void *X,
+                const int incX, void *A);
+void cblas_zher2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *A, const int lda);
+void cblas_zhpr2(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const int N,
+                const void *alpha, const void *X, const int incX,
+                const void *Y, const int incY, void *Ap);
+
+/*
+ * ===========================================================================
+ * Prototypes for level 3 BLAS
+ * ===========================================================================
+ */
+
+/*
+ * Routines with standard 4 prefixes (S, D, C, Z)
+ */
+void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const float alpha, const float *A,
+                 const int lda, const float *B, const int ldb,
+                 const float beta, float *C, const int ldc);
+void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 const float *B, const int ldb, const float beta,
+                 float *C, const int ldc);
+void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const float *A, const int lda,
+                 const float beta, float *C, const int ldc);
+void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const float alpha, const float *A, const int lda,
+                  const float *B, const int ldb, const float beta,
+                  float *C, const int ldc);
+void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const float alpha, const float *A, const int lda,
+                 float *B, const int ldb);
+
+void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const double alpha, const double *A,
+                 const int lda, const double *B, const int ldb,
+                 const double beta, double *C, const int ldc);
+void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 const double *B, const int ldb, const double beta,
+                 double *C, const int ldc);
+void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const double *A, const int lda,
+                 const double beta, double *C, const int ldc);
+void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const double alpha, const double *A, const int lda,
+                  const double *B, const int ldb, const double beta,
+                  double *C, const int ldc);
+void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const double alpha, const double *A, const int lda,
+                 double *B, const int ldb);
+
+void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
+                 const int K, const void *alpha, const void *A,
+                 const int lda, const void *B, const int ldb,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const void *alpha, const void *A, const int lda,
+                 const void *beta, void *C, const int ldc);
+void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const void *beta,
+                  void *C, const int ldc);
+void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
+                 const enum CBLAS_DIAG Diag, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 void *B, const int ldb);
+
+
+/*
+ * Routines with prefixes C and Z only
+ */
+void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const float alpha, const void *A, const int lda,
+                 const float beta, void *C, const int ldc);
+void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const float beta,
+                  void *C, const int ldc);
+void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
+                 const enum CBLAS_UPLO Uplo, const int M, const int N,
+                 const void *alpha, const void *A, const int lda,
+                 const void *B, const int ldb, const void *beta,
+                 void *C, const int ldc);
+void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                 const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                 const double alpha, const void *A, const int lda,
+                 const double beta, void *C, const int ldc);
+void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                  const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
+                  const void *alpha, const void *A, const int lda,
+                  const void *B, const int ldb, const double beta,
+                  void *C, const int ldc);
+
+int cblas_errprn(int ierr, int info, char *form, ...);
+
+#endif  /* end #ifdef CBLAS_ENUM_ONLY */
+#endif
Index: proiecte/hpl/atlas_compiled/include/clapack.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/clapack.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/clapack.h	(revision 97)
@@ -0,0 +1,149 @@
+/*
+ *             Automatically Tuned Linear Algebra Software v3.8.3
+ *                    (C) Copyright 1999 R. Clint Whaley
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *   1. Redistributions of source code must retain the above copyright
+ *      notice, this list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright
+ *      notice, this list of conditions, and the following disclaimer in the
+ *      documentation and/or other materials provided with the distribution.
+ *   3. The name of the ATLAS group or the names of its contributers may
+ *      not be used to endorse or promote products derived from this
+ *      software without specific written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ATLAS GROUP OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef CLAPACK_H
+
+#define CLAPACK_H
+#include "cblas.h"
+
+#ifndef ATLAS_ORDER
+   #define ATLAS_ORDER CBLAS_ORDER
+#endif
+#ifndef ATLAS_UPLO
+   #define ATLAS_UPLO CBLAS_UPLO
+#endif
+#ifndef ATLAS_DIAG
+   #define ATLAS_DIAG CBLAS_DIAG
+#endif
+int clapack_sgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  float *A, const int lda, int *ipiv,
+                  float *B, const int ldb);
+int clapack_sgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   float *A, const int lda, int *ipiv);
+int clapack_sgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const float *A, const int lda,
+    const int *ipiv, float *B, const int ldb);
+int clapack_sgetri(const enum CBLAS_ORDER Order, const int N, float *A,
+                   const int lda, const int *ipiv);
+int clapack_sposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, float *A, const int lda,
+                  float *B, const int ldb);
+int clapack_spotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_spotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const float *A, const int lda,
+                   float *B, const int ldb);
+int clapack_spotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_slauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, float *A, const int lda);
+int clapack_strtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, float *A, const int lda);
+
+int clapack_dgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  double *A, const int lda, int *ipiv,
+                  double *B, const int ldb);
+int clapack_dgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   double *A, const int lda, int *ipiv);
+int clapack_dgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const double *A, const int lda,
+    const int *ipiv, double *B, const int ldb);
+int clapack_dgetri(const enum CBLAS_ORDER Order, const int N, double *A,
+                   const int lda, const int *ipiv);
+int clapack_dposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, double *A, const int lda,
+                  double *B, const int ldb);
+int clapack_dpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const double *A, const int lda,
+                   double *B, const int ldb);
+int clapack_dpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dlauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, double *A, const int lda);
+int clapack_dtrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, double *A, const int lda);
+
+int clapack_cgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  void *A, const int lda, int *ipiv,
+                  void *B, const int ldb);
+int clapack_cgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   void *A, const int lda, int *ipiv);
+int clapack_cgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const void *A, const int lda,
+    const int *ipiv, void *B, const int ldb);
+int clapack_cgetri(const enum CBLAS_ORDER Order, const int N, void *A,
+                   const int lda, const int *ipiv);
+int clapack_cposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, void *A, const int lda,
+                  void *B, const int ldb);
+int clapack_cpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_cpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const void *A, const int lda,
+                   void *B, const int ldb);
+int clapack_cpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_clauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_ctrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, void *A, const int lda);
+
+int clapack_zgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS,
+                  void *A, const int lda, int *ipiv,
+                  void *B, const int ldb);
+int clapack_zgetrf(const enum CBLAS_ORDER Order, const int M, const int N,
+                   void *A, const int lda, int *ipiv);
+int clapack_zgetrs
+   (const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE Trans,
+    const int N, const int NRHS, const void *A, const int lda,
+    const int *ipiv, void *B, const int ldb);
+int clapack_zgetri(const enum CBLAS_ORDER Order, const int N, void *A,
+                   const int lda, const int *ipiv);
+int clapack_zposv(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                  const int N, const int NRHS, void *A, const int lda,
+                  void *B, const int ldb);
+int clapack_zpotrf(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_zpotrs(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
+                   const int N, const int NRHS, const void *A, const int lda,
+                   void *B, const int ldb);
+int clapack_zpotri(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_zlauum(const enum ATLAS_ORDER Order, const enum ATLAS_UPLO Uplo,
+                   const int N, void *A, const int lda);
+int clapack_ztrtri(const enum ATLAS_ORDER Order,const enum ATLAS_UPLO Uplo,
+                  const enum ATLAS_DIAG Diag,const int N, void *A, const int lda);
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/cmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/cmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/cmm.h	(revision 97)
@@ -0,0 +1,51 @@
+#ifndef CMM_H
+   #define CMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  80
+   #define MB 80
+   #define NB 80
+   #define KB 80
+   #define NBNB 6400
+   #define MBNB 6400
+   #define MBKB 6400
+   #define NBKB 6400
+   #define NB2 160
+   #define NBNB2 12800
+
+   #define ATL_MulByNB(N_) ((N_) * 80)
+   #define ATL_DivByNB(N_) ((N_) / 80)
+   #define ATL_MulByNBNB(N_) ((N_) * 6400)
+void ATL_cJIK80x80x80TN80x80x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK80x80x80TN80x80x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_cJIK80x80x80TN80x80x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_cJIK80x80x80TN80x80x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_sJIK80x80x80TN80x80x0_a1_b1
+   #define rNBmm_b0 ATL_sJIK80x80x80TN80x80x0_a1_b0
+   #define rNBmm_bX ATL_sJIK80x80x80TN80x80x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/dXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/dXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/dXover.h	(revision 97)
@@ -0,0 +1,26 @@
+#ifndef DXOVER_H
+#define DXOVER_H
+
+#define ATL_3NB 72
+#define NN_MNK_M 12030336
+#define NN_MNK_N 24482400
+#define NN_MNK_MN 9322560
+#define NN_MNK_K 3557400
+#define NN_MNK_GE 1225043
+#define NT_MNK_M 13680600
+#define NT_MNK_N 12030336
+#define NT_MNK_MN 9223372036854775807
+#define NT_MNK_K 235224
+#define NT_MNK_GE 970299
+#define TN_MNK_M 2046336
+#define TN_MNK_N 41627736
+#define TN_MNK_MN 4678848
+#define TN_MNK_K 3557400
+#define TN_MNK_GE 1225043
+#define TT_MNK_M 23904096
+#define TT_MNK_N 8439576
+#define TT_MNK_MN 9317376
+#define TT_MNK_K 960000
+#define TT_MNK_GE 970299
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/dmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/dmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/dmm.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef DMM_H
+   #define DMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  24
+   #define MB 24
+   #define NB 24
+   #define KB 24
+   #define NBNB 576
+   #define MBNB 576
+   #define MBKB 576
+   #define NBKB 576
+   #define NB2 48
+   #define NBNB2 1152
+
+   #define ATL_MulByNB(N_) ((N_) * 24)
+   #define ATL_DivByNB(N_) ((N_) / 24)
+   #define ATL_MulByNBNB(N_) ((N_) * 576)
+   #define NBmm ATL_dJIK24x24x24TN24x24x0_a1_b1
+   #define NBmm_b1 ATL_dJIK24x24x24TN24x24x0_a1_b1
+   #define NBmm_b0 ATL_dJIK24x24x24TN24x24x0_a1_b0
+   #define NBmm_bX ATL_dJIK24x24x24TN24x24x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/sXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/sXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/sXover.h	(revision 97)
@@ -0,0 +1,26 @@
+#ifndef SXOVER_H
+#define SXOVER_H
+
+#define ATL_3NB 192
+#define NN_MNK_M 9096256
+#define NN_MNK_N 37356544
+#define NN_MNK_MN 132153344
+#define NN_MNK_K 26132544
+#define NN_MNK_GE 4741632
+#define NT_MNK_M 553536
+#define NT_MNK_N 26132544
+#define NT_MNK_MN 9223372036854775807
+#define NT_MNK_K 1081600
+#define NT_MNK_GE 2197000
+#define TN_MNK_M 7311616
+#define TN_MNK_N 136048896
+#define TN_MNK_MN 65167360
+#define TN_MNK_K 56791296
+#define TN_MNK_GE 31255875
+#define TT_MNK_M 7311616
+#define TT_MNK_N 37945600
+#define TT_MNK_MN 33370112
+#define TT_MNK_K 1806336
+#define TT_MNK_GE 4741632
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/smm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/smm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/smm.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef SMM_H
+   #define SMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  64
+   #define MB 64
+   #define NB 64
+   #define KB 64
+   #define NBNB 4096
+   #define MBNB 4096
+   #define MBKB 4096
+   #define NBKB 4096
+   #define NB2 128
+   #define NBNB2 8192
+
+   #define ATL_MulByNB(N_) ((N_) << 6)
+   #define ATL_DivByNB(N_) ((N_) >> 6)
+   #define ATL_MulByNBNB(N_) ((N_) << 12)
+   #define NBmm ATL_sJIK64x64x64TN64x64x0_a1_b1
+   #define NBmm_b1 ATL_sJIK64x64x64TN64x64x0_a1_b1
+   #define NBmm_b0 ATL_sJIK64x64x64TN64x64x0_a1_b0
+   #define NBmm_bX ATL_sJIK64x64x64TN64x64x0_a1_bX
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/zXover.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/zXover.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/zXover.h	(revision 97)
@@ -0,0 +1,27 @@
+#ifndef ZXOVER_H
+#define ZXOVER_H
+
+#define ATL_3NB 144
+#define NN_MNK_M 10800
+#define NN_MNK_N 43200
+#define NN_MNK_MN 23040
+#define NN_MNK_K 69312
+#define NN_MNK_GE 27000
+#define NT_MNK_M 10800
+#define NT_MNK_N 4800
+#define NT_MNK_MN 23040
+#define NT_MNK_K 27648
+#define NT_MNK_GE 3375
+#define TN_MNK_M 69312
+#define TN_MNK_N 69312
+#define TN_MNK_MN 23040
+#define TN_MNK_K 69312
+#define TN_MNK_GE 54872
+#define TT_MNK_M 43200
+#define TT_MNK_N 10800
+#define TT_MNK_MN 23040
+#define TT_MNK_K 106032
+#define TT_MNK_GE 27000
+#define C2R_K 9223372036854775807
+
+#endif
Index: proiecte/hpl/atlas_compiled/include/zmm.h
===================================================================
--- proiecte/hpl/atlas_compiled/include/zmm.h	(revision 97)
+++ proiecte/hpl/atlas_compiled/include/zmm.h	(revision 97)
@@ -0,0 +1,51 @@
+#ifndef ZMM_H
+   #define ZMM_H
+
+   #define ATL_mmMULADD
+   #define ATL_mmLAT 10
+   #define ATL_mmMU  5
+   #define ATL_mmNU  4
+   #define ATL_mmKU  48
+   #define MB 48
+   #define NB 48
+   #define KB 48
+   #define NBNB 2304
+   #define MBNB 2304
+   #define MBKB 2304
+   #define NBKB 2304
+   #define NB2 96
+   #define NBNB2 4608
+
+   #define ATL_MulByNB(N_) ((N_) * 48)
+   #define ATL_DivByNB(N_) ((N_) / 48)
+   #define ATL_MulByNBNB(N_) ((N_) * 2304)
+void ATL_zJIK48x48x48TN48x48x0_a1_b0(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_b1(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+void ATL_zJIK48x48x48TN48x48x0_a1_bX(const int M, const int N, const int K, const TYPE alpha, const TYPE *A, const int lda, const TYPE *B, const int ldb, const TYPE beta, TYPE *C, const int ldc);
+
+   #define NBmm_b1(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rone, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_b0(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, ATL_rzero, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b0(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, ATL_rzero, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define NBmm_bX(m_, n_, k_, al_, A_, lda_, B_, ldb_, be_, C_, ldc_) \
+{ \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_), ldb_, -(be_), C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_), lda_, (B_)+NBNB, ldb_, be_, (C_)+1, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_bX(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_)+NBNB, ldb_, ATL_rnone, C_, ldc_); \
+   ATL_zJIK48x48x48TN48x48x0_a1_b1(m_, n_, k_, al_, (A_)+NBNB, lda_, (B_), ldb_, ATL_rone, (C_)+1, ldc_); \
+   }
+   #define rNBmm_b1 ATL_dJIK48x48x48TN48x48x0_a1_b1
+   #define rNBmm_b0 ATL_dJIK48x48x48TN48x48x0_a1_b0
+   #define rNBmm_bX ATL_dJIK48x48x48TN48x48x0_a1_bX
+
+#endif
Index: proiecte/hpl/hpl_compiled/HPL.dat
===================================================================
--- proiecte/hpl/hpl_compiled/HPL.dat	(revision 97)
+++ proiecte/hpl/hpl_compiled/HPL.dat	(revision 97)
@@ -0,0 +1,31 @@
+HPLinpack benchmark input file
+Innovative Computing Laboratory, University of Tennessee
+HPL.out      output file name (if any)
+6            device out (6=stdout,7=stderr,file)
+1            # of problems sizes (N)
+10000		 Ns
+1            # of NBs
+128          NBs
+0            PMAP process mapping (0=Row-,1=Column-major)
+1            # of process grids (P x Q)
+2   	     Ps
+4	         Qs
+16.0         threshold
+1            # of panel fact
+0            PFACTs (0=left, 1=Crout, 2=Right)
+1            # of recursive stopping criterium
+2            NBMINs (>= 1)
+1            # of panels in recursion
+2            NDIVs
+1            # of recursive panel fact.
+2        RFACTs (0=left, 1=Crout, 2=Right)
+1            # of broadcast
+1            BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM)
+1            # of lookahead depth
+0            DEPTHs (>=0)
+1            SWAP (0=bin-exch,1=long,2=mix,3=MPI-coll)
+64           swapping threshold
+1            L1 in (0=transposed,1=no-transposed) form
+0            U  in (0=transposed,1=no-transposed) form
+1            Equilibration (0=no,1=yes)
+8            memory alignment in double (> 0)
Index: proiecte/hpl/openmpi_compiled/bin/mpiCC
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpiCC	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpiCC	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpiCC-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpiCC-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpiCC-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpic++
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpic++	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpic++	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpic++-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpic++-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpic++-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpicc
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpicc	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpicc	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpicc-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpicc-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpicc-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpicxx
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpicxx	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpicxx	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpicxx-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpicxx-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpicxx-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpiexec
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpiexec	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpiexec	(revision 97)
@@ -0,0 +1,1 @@
+link orterun
Index: proiecte/hpl/openmpi_compiled/bin/mpif77
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpif77	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpif77	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpif77-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpif77-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpif77-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpif90
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpif90	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpif90	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpif90-vt
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpif90-vt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpif90-vt	(revision 97)
@@ -0,0 +1,1 @@
+link opal_wrapper
Index: proiecte/hpl/openmpi_compiled/bin/mpirun
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/mpirun	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/mpirun	(revision 97)
@@ -0,0 +1,1 @@
+link orterun
Index: proiecte/hpl/openmpi_compiled/bin/ompi-checkpoint
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/ompi-checkpoint	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/ompi-checkpoint	(revision 97)
@@ -0,0 +1,1 @@
+link orte-checkpoint
Index: proiecte/hpl/openmpi_compiled/bin/ompi-clean
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/ompi-clean	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/ompi-clean	(revision 97)
@@ -0,0 +1,1 @@
+link orte-clean
Index: proiecte/hpl/openmpi_compiled/bin/ompi-iof
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/ompi-iof	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/ompi-iof	(revision 97)
@@ -0,0 +1,1 @@
+link orte-iof
Index: proiecte/hpl/openmpi_compiled/bin/ompi-ps
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/ompi-ps	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/ompi-ps	(revision 97)
@@ -0,0 +1,1 @@
+link orte-ps
Index: proiecte/hpl/openmpi_compiled/bin/ompi-restart
===================================================================
--- proiecte/hpl/openmpi_compiled/bin/ompi-restart	(revision 97)
+++ proiecte/hpl/openmpi_compiled/bin/ompi-restart	(revision 97)
@@ -0,0 +1,1 @@
+link orte-restart
Index: proiecte/hpl/openmpi_compiled/etc/openmpi-default-hostfile
===================================================================
--- proiecte/hpl/openmpi_compiled/etc/openmpi-default-hostfile	(revision 97)
+++ proiecte/hpl/openmpi_compiled/etc/openmpi-default-hostfile	(revision 97)
@@ -0,0 +1,32 @@
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the default hostfile for Open MPI.  Notice that it does not
+# contain any hosts (not even localhost).  This file should only
+# contain hosts if a system administrator wants users to always have
+# the same set of default hosts, and is not using a batch scheduler
+# (such as SLURM, PBS, etc.).  
+#
+# If you are primarily interested in running Open MPI on one node, you
+# should *not* simply list "localhost" in here (contrary to prior MPI
+# implementations, such as LAM/MPI).  A localhost-only node list is
+# created by the RAS component named "localhost" if no other RAS
+# components were able to find any hosts to run on (this behavior can
+# be disabled by excluding the localhost RAS component by specifying
+# the value "^localhost" [without the quotes] to the "ras" MCA
+# parameter).  
+
Index: proiecte/hpl/openmpi_compiled/etc/openmpi-mca-params.conf
===================================================================
--- proiecte/hpl/openmpi_compiled/etc/openmpi-mca-params.conf	(revision 97)
+++ proiecte/hpl/openmpi_compiled/etc/openmpi-mca-params.conf	(revision 97)
@@ -0,0 +1,58 @@
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+
+# This is the default system-wide MCA parameters defaults file.
+# Specifically, the MCA parameter "mca_param_files" defaults to a
+# value of
+# "$HOME/.openmpi/mca-params.conf:$sysconf/openmpi-mca-params.conf"
+# (this file is the latter of the two).  So if the default value of
+# mca_param_files is not changed, this file is used to set system-wide
+# MCA parameters.  This file can therefore be used to set system-wide
+# default MCA parameters for all users.  Of course, users can override
+# these values if they want, but this file is an excellent location
+# for setting system-specific MCA parameters for those users who don't
+# know / care enough to investigate the proper values for them.
+
+# Note that this file is only applicable where it is visible (in a
+# filesystem sense).  Specifically, MPI processes each read this file
+# during their startup to determine what default values for MCA
+# parameters should be used.  mpirun does not bundle up the values in
+# this file from the node where it was run and send them to all nodes;
+# the default value decisions are effectively distributed.  Hence,
+# these values are only applicable on nodes that "see" this file.  If
+# $sysconf is a directory on a local disk, it is likely that changes
+# to this file will need to be propagated to other nodes.  If $sysconf
+# is a directory that is shared via a networked filesystem, changes to
+# this file will be visible to all nodes that share this $sysconf.
+
+# The format is straightforward: one per line, mca_param_name =
+# rvalue.  Quoting is ignored (so if you use quotes or escape
+# characters, they'll be included as part of the value).  For example:
+
+# Disable run-time MPI parameter checking
+#   mpi_param_check = 0
+
+# Note that the value "~/" will be expanded to the current user's home
+# directory.  For example:
+
+# Change component loading path
+#   component_path = /usr/local/lib/openmpi:~/my_openmpi_components
+
+# See "ompi_info --param all all" for a full listing of Open MPI MCA
+# parameters available and their default values.
Index: proiecte/hpl/openmpi_compiled/etc/openmpi-totalview.tcl
===================================================================
--- proiecte/hpl/openmpi_compiled/etc/openmpi-totalview.tcl	(revision 97)
+++ proiecte/hpl/openmpi_compiled/etc/openmpi-totalview.tcl	(revision 97)
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+
+# Check if the newly loaded image is one of the MPI starter programs
+# and start it immediately if it is.
+
+proc mpi_auto_run_starter {loaded_id} {
+    set starter_programs {mpirun mpiexec orterun}
+    set executable_name [TV::symbol get $loaded_id full_pathname]
+    set file_component [file tail $executable_name]
+
+    if {[lsearch -exact $starter_programs $file_component] != -1} {
+        puts "**************************************"
+        puts "Automatically starting $file_component"
+        puts "**************************************"
+        dgo
+    }
+}
+
+# Append this function to TotalView's image load callbacks so that
+# TotalView run this program automatically.
+
+dlappend TV::image_load_callbacks mpi_auto_run_starter
Index: proiecte/hpl/openmpi_compiled/include/mpi.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/mpi.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/mpi.h	(revision 97)
@@ -0,0 +1,1897 @@
+/* ompi/include/mpi.h.  Generated from mpi.h.in by configure.  */
+/*
+ * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+ *                         University Research and Technology
+ *                         Corporation.  All rights reserved.
+ * Copyright (c) 2004-2006 The University of Tennessee and The University
+ *                         of Tennessee Research Foundation.  All rights
+ *                         reserved.
+ * Copyright (c) 2004-2007 High Performance Computing Center Stuttgart, 
+ *                         University of Stuttgart.  All rights reserved.
+ * Copyright (c) 2004-2005 The Regents of the University of California.
+ *                         All rights reserved.
+ * Copyright (c) 2007-2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+ * $COPYRIGHT$
+ * 
+ * Additional copyrights may follow
+ * 
+ * $HEADER$
+ */
+
+#ifndef OMPI_MPI_H
+#define OMPI_MPI_H
+
+/* The comment below (and the ending partner) are for building fat
+   distributions on platforms that support it.  Please do not remove */
+
+/* @OMPI_BEGIN_CONFIGURE_SECTION@ */
+
+#ifndef OMPI_CONFIG_H
+
+/* Only include these if OMPI_CONFIG_H isn't defined (meaning if
+   ompi_config.h hasn't already been included).  Otherwise, we'll
+   duplicate all those symbols.  OMPI coding standards say that
+   ompi_config.h must be included before all other files, so this
+   should be good enough */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define OMPI_STDC_HEADERS 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define OMPI_HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/synch.h> header file. */
+/* #undef OMPI_HAVE_SYS_SYNCH_H */
+
+/* Define to 1 if the system has the type `long long'. */
+#define OMPI_HAVE_LONG_LONG 1
+
+/* The size of a `bool', as computed by sizeof. */
+#define OMPI_SIZEOF_BOOL 1
+
+/* The size of a `int', as computed by sizeof. */
+#define OMPI_SIZEOF_INT 4
+
+/* Whether we have FORTRAN LOGICAL*1 or not */
+#define OMPI_HAVE_FORTRAN_LOGICAL1 0
+
+/* Whether we have FORTRAN LOGICAL*2 or not */
+#define OMPI_HAVE_FORTRAN_LOGICAL2 0
+
+/* Whether we have FORTRAN LOGICAL*4 or not */
+#define OMPI_HAVE_FORTRAN_LOGICAL4 0
+
+/* Whether we have FORTRAN LOGICAL*8 or not */
+#define OMPI_HAVE_FORTRAN_LOGICAL8 0
+
+/* Whether we have FORTRAN INTEGER*1 or not */
+#define OMPI_HAVE_FORTRAN_INTEGER1 0
+
+/* Whether we have FORTRAN INTEGER*16 or not */
+#define OMPI_HAVE_FORTRAN_INTEGER16 0
+
+/* Whether we have FORTRAN INTEGER*2 or not */
+#define OMPI_HAVE_FORTRAN_INTEGER2 0
+
+/* Whether we have FORTRAN INTEGER*4 or not */
+#define OMPI_HAVE_FORTRAN_INTEGER4 0
+
+/* Whether we have FORTRAN INTEGER*8 or not */
+#define OMPI_HAVE_FORTRAN_INTEGER8 0
+
+/* Whether we have FORTRAN REAL*16 or not */
+#define OMPI_HAVE_FORTRAN_REAL16 0
+
+/* Whether we have FORTRAN REAL*2 or not */
+#define OMPI_HAVE_FORTRAN_REAL2 0
+
+/* Whether we have FORTRAN REAL*4 or not */
+#define OMPI_HAVE_FORTRAN_REAL4 0
+
+/* Whether we have FORTRAN REAL*8 or not */
+#define OMPI_HAVE_FORTRAN_REAL8 0
+
+/* Type of MPI_Offset -- has to be defined here and typedef'ed later because mpi.h does not get AC SUBST's */
+#define OMPI_MPI_OFFSET_TYPE long long
+
+/* type to use for ptrdiff_t, if it does not exist, set to ptrdiff_t if it does exist */
+#define OMPI_PTRDIFF_TYPE ptrdiff_t
+
+/* Whether we want MPI cxx support or not */
+#define OMPI_WANT_CXX_BINDINGS 1
+
+/* do we want to try to work around C++ bindings SEEK_* issue? */
+#define OMPI_WANT_MPI_CXX_SEEK 1
+
+/* Whether a const_cast on a 2-d array will work with the C++ compiler */
+#define OMPI_CXX_SUPPORTS_2D_CONST_CAST 1
+
+/* Whether we want the MPI f77 bindings or not */
+#define OMPI_WANT_F77_BINDINGS 0
+
+/* Whether we want the MPI f90 bindings or not */
+#define OMPI_WANT_F90_BINDINGS 0
+
+/* Whether or not we have compiled with C++ exceptions support */
+#define OMPI_HAVE_CXX_EXCEPTION_SUPPORT 0
+
+/* MPI datatype corresponding to MPI_Offset */
+#define OMPI_OFFSET_DATATYPE MPI_LONG_LONG
+
+/* Major, minor, and release version of Open MPI */
+#define OMPI_MAJOR_VERSION 1
+#define OMPI_MINOR_VERSION 4
+#define OMPI_RELEASE_VERSION 0
+
+/* A  type that allows us to have sentinel type values that are still
+   valid */
+#define ompi_fortran_bogus_type_t int
+
+/* C type corresponding to FORTRAN INTEGER */
+#define ompi_fortran_integer_t ompi_fortran_bogus_type_t
+
+/* Whether C compiler supports -fvisibility */
+#define OMPI_C_HAVE_VISIBILITY 1
+
+/* Whether OMPI should provide MPI File interface */
+#define OMPI_PROVIDE_MPI_FILE_INTERFACE 1
+
+#ifndef OMPI_DECLSPEC
+#  if defined(WIN32) || defined(_WIN32)
+#    if defined(OMPI_IMPORTS)
+#      define OMPI_DECLSPEC        __declspec(dllimport)
+#    else
+#      define OMPI_DECLSPEC
+#    endif  /* defined(OMPI_IMPORTS) */
+#  else
+#    if OMPI_C_HAVE_VISIBILITY == 1
+#       define OMPI_DECLSPEC __attribute__((visibility("default")))
+#    else
+#       define OMPI_DECLSPEC
+#    endif      
+#  endif
+#endif
+
+#ifndef MPI_Fint
+/* MPI_Fint is the same as ompi_fortran_INTEGER_t */
+#define MPI_Fint ompi_fortran_integer_t
+#endif
+
+#endif /* #ifndef OMPI_CONFIG_H */
+
+/* @OMPI_END_CONFIGURE_SECTION@ */
+
+/* include for ptrdiff_t */
+#ifdef OMPI_STDC_HEADERS
+#include <stddef.h>
+#endif
+
+#ifndef OMPI_BUILDING
+#define OMPI_BUILDING 0
+#endif
+
+
+/*
+ * Just in case you need it.  :-)
+ */
+#define OPEN_MPI 1
+
+/*
+ * MPI version
+ */
+#define MPI_VERSION 2
+#define MPI_SUBVERSION 1
+
+/*
+ * To accomodate programs written for MPI implementations that use a
+ * straight ROMIO import
+ */
+#if !OMPI_BUILDING && OMPI_PROVIDE_MPI_FILE_INTERFACE
+#define MPIO_Request MPI_Request
+#define MPIO_Test MPI_Test
+#define MPIO_Wait MPI_Wait
+#endif
+
+/*
+ * When initializing global pointers to Open MPI internally-defined
+ * structs, some compilers warn about type-punning to incomplete
+ * types.  Therefore, when full struct definitions are unavailable
+ * (when not building Open MPI), cast to an opaque (void *) pointer to
+ * disable any strict-aliasing optimizations.  Don't cast to (void *)
+ * when building Open MPI so that we actually get the benefit of type
+ * checking (because we *do* have the full type definitions available
+ * when building OMPI).
+ */
+#if !OMPI_BUILDING
+#define OMPI_PREDEFINED_GLOBAL(type, global) ((type) ((void *) &(global)))
+#else
+#define OMPI_PREDEFINED_GLOBAL(type, global) ((type) &(global))
+#endif
+
+#if defined(c_plusplus) || defined(__cplusplus)
+extern "C" {
+#endif
+/*
+ * Typedefs
+ */
+
+typedef OMPI_PTRDIFF_TYPE MPI_Aint;
+typedef OMPI_MPI_OFFSET_TYPE MPI_Offset;
+typedef struct ompi_communicator_t *MPI_Comm;
+typedef struct ompi_datatype_t *MPI_Datatype;
+typedef struct ompi_errhandler_t *MPI_Errhandler;
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+typedef struct ompi_file_t *MPI_File;
+#endif
+typedef struct ompi_group_t *MPI_Group;
+typedef struct ompi_info_t *MPI_Info;
+typedef struct ompi_op_t *MPI_Op;
+typedef struct ompi_request_t *MPI_Request;
+typedef struct ompi_status_public_t MPI_Status;
+typedef struct ompi_win_t *MPI_Win;
+
+/*
+ * MPI_Status
+ */
+struct ompi_status_public_t { 
+  int MPI_SOURCE;
+  int MPI_TAG;
+  int MPI_ERROR;
+  int _count;
+  int _cancelled;
+};
+typedef struct ompi_status_public_t ompi_status_public_t;
+
+/*
+ * User typedefs
+ */
+typedef int (MPI_Copy_function)(MPI_Comm, int, void *,
+                                void *, void *, int *);
+typedef int (MPI_Delete_function)(MPI_Comm, int, void *, void *);
+typedef int (MPI_Datarep_extent_function)(MPI_Datatype, MPI_Aint *, void *);
+typedef int (MPI_Datarep_conversion_function)(void *, MPI_Datatype, 
+                                              int, void *, MPI_Offset, void *);
+typedef void (MPI_Comm_errhandler_fn)(MPI_Comm *, int *, ...);
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+    /* This is a little hackish, but errhandler.h needs space for a
+       MPI_File_errhandler_fn.  While it could just be removed, this
+       allows us to maintain a stable ABI within OMPI, at least for
+       apps that don't use MPI I/O. */
+typedef void (ompi_file_errhandler_fn)(MPI_File *, int *, ...);
+typedef ompi_file_errhandler_fn MPI_File_errhandler_fn;
+#else
+struct ompi_file_t;
+typedef void (ompi_file_errhandler_fn)(struct ompi_file_t**, int *, ...);
+#endif
+typedef void (MPI_Win_errhandler_fn)(MPI_Win *, int *, ...);
+typedef void (MPI_Handler_function)(MPI_Comm *, int *, ...);
+typedef void (MPI_User_function)(void *, void *, int *, MPI_Datatype *);
+typedef int (MPI_Comm_copy_attr_function)(MPI_Comm, int, void *,
+                                            void *, void *, int *);
+typedef int (MPI_Comm_delete_attr_function)(MPI_Comm, int, void *, void *);
+typedef int (MPI_Type_copy_attr_function)(MPI_Datatype, int, void *,
+                                            void *, void *, int *);
+typedef int (MPI_Type_delete_attr_function)(MPI_Datatype, int,
+                                              void *, void *);
+typedef int (MPI_Win_copy_attr_function)(MPI_Win, int, void *,
+                                           void *, void *, int *);
+typedef int (MPI_Win_delete_attr_function)(MPI_Win, int, void *, void *);
+typedef int (MPI_Grequest_query_function)(void *, MPI_Status *);
+typedef int (MPI_Grequest_free_function)(void *);
+typedef int (MPI_Grequest_cancel_function)(void *, int); 
+
+/*
+ * Miscellaneous constants
+ */
+#define MPI_ANY_SOURCE         -1      /* match any source rank */
+#define MPI_PROC_NULL          -2      /* rank of null process */
+#define MPI_ROOT               -4
+#define MPI_ANY_TAG            -1      /* match any message tag */
+#define MPI_MAX_PROCESSOR_NAME 256     /* max proc. name length */
+#define MPI_MAX_ERROR_STRING   256     /* max error message length */
+#define MPI_MAX_OBJECT_NAME    64      /* max object name length */
+#define MPI_UNDEFINED          -32766  /* undefined stuff */
+#define MPI_CART               1       /* cartesian topology */
+#define MPI_GRAPH              2       /* graph topology */
+#define MPI_KEYVAL_INVALID     -1      /* invalid key value */
+
+/*
+ * More constants
+ */
+#define MPI_BOTTOM               ((void *) 0)    /* base reference address */
+#define MPI_IN_PLACE             ((void *) 1)    /* in place buffer */
+#define MPI_BSEND_OVERHEAD       128     /* size of bsend header + ptr */
+#define MPI_MAX_INFO_KEY         36      /* max info key length */
+#define MPI_MAX_INFO_VAL         256     /* max info value length */
+#define MPI_ARGV_NULL            ((char **) 0)   /* NULL argument vector */
+#define MPI_ARGVS_NULL           ((char ***) 0)  /* NULL argument vectors */
+#define MPI_ERRCODES_IGNORE      ((int *) 0)    /* don't return error codes */
+#define MPI_MAX_PORT_NAME        1024    /* max port name length */
+#define MPI_MAX_NAME_LEN         MPI_MAX_PORT_NAME /* max port name length */
+#define MPI_ORDER_C              0       /* C row major order */
+#define MPI_ORDER_FORTRAN        1       /* Fortran column major order */
+#define MPI_DISTRIBUTE_BLOCK     0       /* block distribution */
+#define MPI_DISTRIBUTE_CYCLIC    1       /* cyclic distribution */
+#define MPI_DISTRIBUTE_NONE      2       /* not distributed */
+#define MPI_DISTRIBUTE_DFLT_DARG (-1)    /* default distribution arg */
+
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+/*
+ * Since these values are arbitrary to Open MPI, we might as well make
+ * them the same as ROMIO for ease of mapping.  These values taken
+ * from ROMIO's mpio.h file.
+ */
+#define MPI_MODE_CREATE              1  /* ADIO_CREATE */ 
+#define MPI_MODE_RDONLY              2  /* ADIO_RDONLY */
+#define MPI_MODE_WRONLY              4  /* ADIO_WRONLY  */
+#define MPI_MODE_RDWR                8  /* ADIO_RDWR  */
+#define MPI_MODE_DELETE_ON_CLOSE    16  /* ADIO_DELETE_ON_CLOSE */
+#define MPI_MODE_UNIQUE_OPEN        32  /* ADIO_UNIQUE_OPEN */
+#define MPI_MODE_EXCL               64  /* ADIO_EXCL */
+#define MPI_MODE_APPEND            128  /* ADIO_APPEND */
+#define MPI_MODE_SEQUENTIAL        256  /* ADIO_SEQUENTIAL */
+
+#define MPI_DISPLACEMENT_CURRENT   -54278278
+
+#define MPI_SEEK_SET            600
+#define MPI_SEEK_CUR            602
+#define MPI_SEEK_END            604
+
+#define MPI_MAX_DATAREP_STRING  128
+#endif /* #if OMPI_PROVIDE_MPI_FILE_INTERFACE */
+
+/*
+ * MPI-2 One-Sided Communications asserts
+ */
+#define MPI_MODE_NOCHECK             1
+#define MPI_MODE_NOPRECEDE           2
+#define MPI_MODE_NOPUT               4
+#define MPI_MODE_NOSTORE             8
+#define MPI_MODE_NOSUCCEED          16
+
+#define MPI_LOCK_EXCLUSIVE           1
+#define MPI_LOCK_SHARED              2
+
+
+/*
+ * Predefined attribute keyvals
+ *
+ * DO NOT CHANGE THE ORDER WITHOUT ALSO CHANGING THE ORDER IN
+ * src/attribute/attribute_predefined.c and mpif.h.in.
+ */
+enum {
+    /* MPI-1 */
+    MPI_TAG_UB,
+    MPI_HOST,
+    MPI_IO,
+    MPI_WTIME_IS_GLOBAL,
+
+    /* MPI-2 */
+    MPI_APPNUM,
+    MPI_LASTUSEDCODE,
+    MPI_UNIVERSE_SIZE,
+    MPI_WIN_BASE,
+    MPI_WIN_SIZE,
+    MPI_WIN_DISP_UNIT,
+
+    /* Even though these four are IMPI attributes, they need to be there
+       for all MPI jobs */
+    IMPI_CLIENT_SIZE,
+    IMPI_CLIENT_COLOR,
+    IMPI_HOST_SIZE,
+    IMPI_HOST_COLOR
+};
+
+/*
+ * Error classes and codes
+ * Do not change the values of these without also modifying mpif.h.in.
+ */
+#define MPI_SUCCESS                   0  
+#define MPI_ERR_BUFFER                1
+#define MPI_ERR_COUNT                 2
+#define MPI_ERR_TYPE                  3
+#define MPI_ERR_TAG                   4
+#define MPI_ERR_COMM                  5
+#define MPI_ERR_RANK                  6
+#define MPI_ERR_REQUEST               7
+#define MPI_ERR_ROOT                  8
+#define MPI_ERR_GROUP                 9
+#define MPI_ERR_OP                    10
+#define MPI_ERR_TOPOLOGY              11
+#define MPI_ERR_DIMS                  12
+#define MPI_ERR_ARG                   13
+#define MPI_ERR_UNKNOWN               14
+#define MPI_ERR_TRUNCATE              15
+#define MPI_ERR_OTHER                 16
+#define MPI_ERR_INTERN                17
+#define MPI_ERR_IN_STATUS             18
+#define MPI_ERR_PENDING               19
+#define MPI_ERR_ACCESS                20
+#define MPI_ERR_AMODE                 21
+#define MPI_ERR_ASSERT                22
+#define MPI_ERR_BAD_FILE              23
+#define MPI_ERR_BASE                  24
+#define MPI_ERR_CONVERSION            25
+#define MPI_ERR_DISP                  26
+#define MPI_ERR_DUP_DATAREP           27
+#define MPI_ERR_FILE_EXISTS           28
+#define MPI_ERR_FILE_IN_USE           29
+#define MPI_ERR_FILE                  30
+#define MPI_ERR_INFO_KEY              31
+#define MPI_ERR_INFO_NOKEY            32
+#define MPI_ERR_INFO_VALUE            33
+#define MPI_ERR_INFO                  34
+#define MPI_ERR_IO                    35
+#define MPI_ERR_KEYVAL                36
+#define MPI_ERR_LOCKTYPE              37
+#define MPI_ERR_NAME                  38
+#define MPI_ERR_NO_MEM                39
+#define MPI_ERR_NOT_SAME              40
+#define MPI_ERR_NO_SPACE              41
+#define MPI_ERR_NO_SUCH_FILE          42
+#define MPI_ERR_PORT                  43
+#define MPI_ERR_QUOTA                 44
+#define MPI_ERR_READ_ONLY             45
+#define MPI_ERR_RMA_CONFLICT          46
+#define MPI_ERR_RMA_SYNC              47
+#define MPI_ERR_SERVICE               48
+#define MPI_ERR_SIZE                  49
+#define MPI_ERR_SPAWN                 50
+#define MPI_ERR_UNSUPPORTED_DATAREP   51
+#define MPI_ERR_UNSUPPORTED_OPERATION 52
+#define MPI_ERR_WIN                   53
+#define MPI_ERR_LASTCODE              54
+
+#define MPI_ERR_SYSRESOURCE          -2
+
+
+/*
+ * Comparison results.  Don't change the order of these, the group
+ * comparison functions rely on it.
+ * Do not change the order of these without also modifying mpif.h.in.
+ */
+enum {
+  MPI_IDENT,
+  MPI_CONGRUENT,
+  MPI_SIMILAR,
+  MPI_UNEQUAL
+};
+
+/*
+ * MPI_Init_thread constants
+ * Do not change the order of these without also modifying mpif.h.in.
+ */
+enum {
+  MPI_THREAD_SINGLE,
+  MPI_THREAD_FUNNELED,
+  MPI_THREAD_SERIALIZED,
+  MPI_THREAD_MULTIPLE
+};
+
+/*
+ * Datatype combiners.
+ * Do not change the order of these without also modifying mpif.h.in.
+ */
+enum {
+  MPI_COMBINER_NAMED,
+  MPI_COMBINER_DUP,
+  MPI_COMBINER_CONTIGUOUS,
+  MPI_COMBINER_VECTOR,
+  MPI_COMBINER_HVECTOR_INTEGER,
+  MPI_COMBINER_HVECTOR,
+  MPI_COMBINER_INDEXED,
+  MPI_COMBINER_HINDEXED_INTEGER,
+  MPI_COMBINER_HINDEXED,
+  MPI_COMBINER_INDEXED_BLOCK,
+  MPI_COMBINER_STRUCT_INTEGER,
+  MPI_COMBINER_STRUCT,
+  MPI_COMBINER_SUBARRAY,
+  MPI_COMBINER_DARRAY,
+  MPI_COMBINER_F90_REAL,
+  MPI_COMBINER_F90_COMPLEX,
+  MPI_COMBINER_F90_INTEGER,
+  MPI_COMBINER_RESIZED
+};
+
+/*
+ * NULL handles
+ */
+#define MPI_GROUP_NULL OMPI_PREDEFINED_GLOBAL(MPI_Group, ompi_mpi_group_null)
+#define MPI_COMM_NULL OMPI_PREDEFINED_GLOBAL(MPI_Comm, ompi_mpi_comm_null)
+#define MPI_REQUEST_NULL OMPI_PREDEFINED_GLOBAL(MPI_Request, ompi_request_null)
+#define MPI_OP_NULL OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_null)
+#define MPI_ERRHANDLER_NULL OMPI_PREDEFINED_GLOBAL(MPI_Errhandler, ompi_mpi_errhandler_null)
+#define MPI_INFO_NULL OMPI_PREDEFINED_GLOBAL(MPI_Info, ompi_mpi_info_null)
+#define MPI_WIN_NULL OMPI_PREDEFINED_GLOBAL(MPI_Win, ompi_mpi_win_null)
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+#define MPI_FILE_NULL OMPI_PREDEFINED_GLOBAL(MPI_File, ompi_mpi_file_null)
+#endif
+
+#define MPI_STATUS_IGNORE ((MPI_Status *) 0)
+#define MPI_STATUSES_IGNORE ((MPI_Status *) 0)
+
+/* MPI-2 specifies that the name "MPI_TYPE_NULL_DELETE_FN" (and all
+   related friends) must be accessible in C, C++, and Fortran. This is
+   unworkable if the back-end Fortran compiler uses all caps for its
+   linker symbol convention -- it results in two functions with
+   different signatures that have the same name (i.e., both C and
+   Fortran use the symbol MPI_TYPE_NULL_DELETE_FN).  So we have to
+   #define the C names to be something else, so that they names are
+   *accessed* through MPI_TYPE_NULL_DELETE_FN, but their actual symbol
+   name is different.
+
+   However, this file is included when the fortran wrapper functions
+   are compiled in Open MPI, so we do *not* want these #defines in
+   this case (i.e., we need the Fortran wrapper function to be
+   compiled as MPI_TYPE_NULL_DELETE_FN).  So add some #if kinds of
+   protection for this case. */
+
+#if !defined(OMPI_COMPILING_F77_WRAPPERS)
+#define MPI_NULL_DELETE_FN OMPI_C_MPI_NULL_DELETE_FN
+#define MPI_NULL_COPY_FN OMPI_C_MPI_NULL_COPY_FN
+#define MPI_DUP_FN OMPI_C_MPI_DUP_FN
+
+#define MPI_TYPE_NULL_DELETE_FN OMPI_C_MPI_TYPE_NULL_DELETE_FN
+#define MPI_TYPE_NULL_COPY_FN OMPI_C_MPI_TYPE_NULL_COPY_FN
+#define MPI_TYPE_DUP_FN OMPI_C_MPI_TYPE_DUP_FN
+
+#define MPI_COMM_NULL_DELETE_FN OMPI_C_MPI_COMM_NULL_DELETE_FN
+#define MPI_COMM_NULL_COPY_FN OMPI_C_MPI_COMM_NULL_COPY_FN
+#define MPI_COMM_DUP_FN OMPI_C_MPI_COMM_DUP_FN
+
+#define MPI_WIN_NULL_DELETE_FN OMPI_C_MPI_WIN_NULL_DELETE_FN
+#define MPI_WIN_NULL_COPY_FN OMPI_C_MPI_WIN_NULL_COPY_FN
+#define MPI_WIN_DUP_FN OMPI_C_MPI_WIN_DUP_FN
+
+/* MPI_CONVERSION_FN_NULL is a sentinel value, but it has to be large
+   enough to be the same size as a valid function pointer.  It
+   therefore shares many characteristics between Fortran constants and
+   Fortran sentinel functions.  For example, it shares the problem of
+   having Fortran compilers have all-caps versions of the symbols that
+   must be able to be present, and therefore has to be in this
+   conditional block in mpi.h. */
+#define MPI_CONVERSION_FN_NULL ((MPI_Datarep_conversion_function*) 0)
+#endif
+
+OMPI_DECLSPEC int OMPI_C_MPI_TYPE_NULL_DELETE_FN( MPI_Datatype datatype, 
+                                                  int type_keyval,
+                                                  void* attribute_val_out, 
+                                                  void* extra_state );
+OMPI_DECLSPEC int OMPI_C_MPI_TYPE_NULL_COPY_FN( MPI_Datatype datatype, 
+                                                int type_keyval, 
+                                                void* extra_state,
+                                                void* attribute_val_in, 
+                                                void* attribute_val_out, 
+                                                int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_TYPE_DUP_FN( MPI_Datatype datatype, 
+                                          int type_keyval, 
+                                          void* extra_state, 
+                                          void* attribute_val_in, 
+                                          void* attribute_val_out, 
+                                          int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_COMM_NULL_DELETE_FN( MPI_Comm comm, 
+                                                  int comm_keyval,
+                                                  void* attribute_val_out, 
+                                                  void* extra_state );
+OMPI_DECLSPEC int OMPI_C_MPI_COMM_NULL_COPY_FN( MPI_Comm comm, 
+                                                int comm_keyval, 
+                                                void* extra_state, 
+                                                void* attribute_val_in,
+                                                void* attribute_val_out, 
+                                                int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_COMM_DUP_FN( MPI_Comm comm, int comm_keyval, 
+                                          void* extra_state,
+                                          void* attribute_val_in, 
+                                          void* attribute_val_out,
+                                          int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_NULL_DELETE_FN( MPI_Comm comm, int comm_keyval,
+                                             void* attribute_val_out, 
+                                             void* extra_state );
+OMPI_DECLSPEC int OMPI_C_MPI_NULL_COPY_FN( MPI_Comm comm, int comm_keyval, 
+                                           void* extra_state,
+                                           void* attribute_val_in, 
+                                           void* attribute_val_out,
+                                           int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_DUP_FN( MPI_Comm comm, int comm_keyval, 
+                                     void* extra_state,
+                                     void* attribute_val_in, 
+                                     void* attribute_val_out,
+                                     int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_WIN_NULL_DELETE_FN( MPI_Win window, 
+                                                 int win_keyval,
+                                                 void* attribute_val_out, 
+                                                 void* extra_state );
+OMPI_DECLSPEC int OMPI_C_MPI_WIN_NULL_COPY_FN( MPI_Win window, int win_keyval, 
+                                               void* extra_state, 
+                                               void* attribute_val_in,
+                                               void* attribute_val_out, 
+                                               int* flag );
+OMPI_DECLSPEC int OMPI_C_MPI_WIN_DUP_FN( MPI_Win window, int win_keyval, 
+                                         void* extra_state,
+                                         void* attribute_val_in, 
+                                         void* attribute_val_out,
+                                         int* flag );
+
+/*
+ * External variables
+ *
+ * The below externs use the ompi_predefined_xxx_t structures to maintain
+ * back compatibility between MPI library versions.
+ * See ompi/communicator/communicator.h comments with struct ompi_communicator_t
+ * for full explanation why we chose to use the ompi_predefined_xxx_t structure.
+ */
+OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_world;
+OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_self;
+OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_null;
+
+OMPI_DECLSPEC extern struct ompi_predefined_group_t ompi_mpi_group_empty;
+OMPI_DECLSPEC extern struct ompi_predefined_group_t ompi_mpi_group_null;
+
+OMPI_DECLSPEC extern struct ompi_predefined_request_t ompi_request_null;
+
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_null;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_max, ompi_mpi_op_min;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_sum;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_prod;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_land;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_band;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_lor, ompi_mpi_op_bor;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_lxor;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_bxor;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_maxloc;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_minloc;
+OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_replace;
+
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_char, ompi_mpi_byte;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_int, ompi_mpi_logic;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_short, ompi_mpi_long;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_float, ompi_mpi_double;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_long_double;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cplex, ompi_mpi_packed;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_signed_char;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_char;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_short;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned, ompi_mpi_datatype_null;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_long, ompi_mpi_ldblcplex;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub, ompi_mpi_lb;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_float_int, ompi_mpi_double_int;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_long_int, ompi_mpi_2int;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_short_int, ompi_mpi_dblcplex;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer, ompi_mpi_real;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_dblprec, ompi_mpi_character;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2real, ompi_mpi_2dblprec;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2integer, ompi_mpi_longdbl_int;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_wchar, ompi_mpi_long_long_int;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_long_long;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_cplex, ompi_mpi_cxx_dblcplex;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_ldblcplex;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_bool;
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2cplex, ompi_mpi_2dblcplex;
+/* other MPI2 datatypes */
+#if OMPI_HAVE_FORTRAN_LOGICAL1
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical1;
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL2
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical2;
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL4
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical4;
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL8
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical8;
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER1
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer1;
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER2
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer2;
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER4
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer4;
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER8
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer8;
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER16
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer16;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL2
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real2;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL4
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real4; 
+#endif
+#if OMPI_HAVE_FORTRAN_REAL8
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real8;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL16
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real16;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL4
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex8;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL8
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex16;
+#endif
+#if OMPI_HAVE_FORTRAN_REAL16
+OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex32;
+#endif
+
+OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errhandler_null;
+OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errors_are_fatal;
+OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errors_return;
+
+OMPI_DECLSPEC extern struct ompi_predefined_win_t ompi_mpi_win_null;
+OMPI_DECLSPEC extern struct ompi_predefined_file_t ompi_mpi_file_null;
+
+OMPI_DECLSPEC extern struct ompi_predefined_info_t ompi_mpi_info_null;
+
+OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUS_IGNORE;
+OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
+
+/*
+ * MPI predefined handles
+ */
+#define MPI_COMM_WORLD OMPI_PREDEFINED_GLOBAL( MPI_Comm, ompi_mpi_comm_world)
+#define MPI_COMM_SELF OMPI_PREDEFINED_GLOBAL(MPI_Comm, ompi_mpi_comm_self)
+
+#define MPI_GROUP_EMPTY OMPI_PREDEFINED_GLOBAL(MPI_Group, ompi_mpi_group_empty)
+
+#define MPI_MAX OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_max)
+#define MPI_MIN OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_min)
+#define MPI_SUM OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_sum)
+#define MPI_PROD OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_prod)
+#define MPI_LAND OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_land)
+#define MPI_BAND OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_band)
+#define MPI_LOR OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_lor)
+#define MPI_BOR OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_bor)
+#define MPI_LXOR OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_lxor)
+#define MPI_BXOR OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_bxor)
+#define MPI_MAXLOC OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_maxloc)
+#define MPI_MINLOC OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_minloc)
+#define MPI_REPLACE OMPI_PREDEFINED_GLOBAL(MPI_Op, ompi_mpi_op_replace)
+
+/* C datatypes */
+#define MPI_DATATYPE_NULL OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_datatype_null)
+#define MPI_BYTE OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_byte)
+#define MPI_PACKED OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_packed)
+#define MPI_CHAR OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_char)
+#define MPI_SHORT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_short)
+#define MPI_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_int)
+#define MPI_LONG OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long)
+#define MPI_FLOAT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_float)
+#define MPI_DOUBLE OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_double)
+#define MPI_LONG_DOUBLE OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_double)
+#define MPI_UNSIGNED_CHAR OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_unsigned_char)
+#define MPI_SIGNED_CHAR OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_signed_char)
+#define MPI_UNSIGNED_SHORT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_unsigned_short)
+#define MPI_UNSIGNED_LONG OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_unsigned_long)
+#define MPI_UNSIGNED OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_unsigned)
+#define MPI_FLOAT_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_float_int)
+#define MPI_DOUBLE_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_double_int)
+#define MPI_LONG_DOUBLE_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_longdbl_int)
+#define MPI_LONG_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_int)
+#define MPI_SHORT_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_short_int)
+#define MPI_2INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2int)
+#define MPI_UB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_ub)
+#define MPI_LB OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_lb)
+#define MPI_WCHAR OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_wchar)
+#if OMPI_HAVE_LONG_LONG
+#define MPI_LONG_LONG_INT OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_long_int)
+#define MPI_LONG_LONG OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_long_long_int)
+#define MPI_UNSIGNED_LONG_LONG OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_unsigned_long_long)
+#endif  /* OMPI_HAVE_LONG_LONG */
+#define MPI_2COMPLEX OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2cplex)
+#define MPI_2DOUBLE_COMPLEX OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2dblcplex)
+
+/* Fortran datatype bindings */
+#define MPI_CHARACTER OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_character)
+#define MPI_LOGICAL OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_logic)
+#if OMPI_HAVE_FORTRAN_LOGICAL1
+#define MPI_LOGICAL1 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_logical1)
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL2
+#define MPI_LOGICAL2 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_logical2)
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL4
+#define MPI_LOGICAL4 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_logical4)
+#endif
+#if OMPI_HAVE_FORTRAN_LOGICAL8
+#define MPI_LOGICAL8 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_logical8)
+#endif
+#define MPI_INTEGER OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer)
+#if OMPI_HAVE_FORTRAN_INTEGER1
+#define MPI_INTEGER1 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer1)
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER2
+#define MPI_INTEGER2 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer2)
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER4
+#define MPI_INTEGER4 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer4)
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER8
+#define MPI_INTEGER8 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer8)
+#endif
+#if OMPI_HAVE_FORTRAN_INTEGER16
+#define MPI_INTEGER16 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_integer16)
+#endif
+#define MPI_REAL OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_real)
+#if OMPI_HAVE_FORTRAN_REAL4
+#define MPI_REAL4 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_real4)
+#endif
+#if OMPI_HAVE_FORTRAN_REAL8
+#define MPI_REAL8 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_real8)
+#endif
+#if OMPI_HAVE_FORTRAN_REAL16
+#define MPI_REAL16 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_real16)
+#endif
+#define MPI_DOUBLE_PRECISION OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_dblprec)
+#define MPI_COMPLEX OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_cplex)
+#if OMPI_HAVE_FORTRAN_REAL4
+#define MPI_COMPLEX8 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_complex8)
+#endif
+#if OMPI_HAVE_FORTRAN_REAL8
+#define MPI_COMPLEX16 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_complex16)
+#endif
+#if OMPI_HAVE_FORTRAN_REAL16
+#define MPI_COMPLEX32 OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_complex32)
+#endif
+#define MPI_DOUBLE_COMPLEX OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_dblcplex)
+#define MPI_2REAL OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2real)
+#define MPI_2DOUBLE_PRECISION OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2dblprec)
+#define MPI_2INTEGER OMPI_PREDEFINED_GLOBAL(MPI_Datatype, ompi_mpi_2integer)
+
+#define MPI_ERRORS_ARE_FATAL OMPI_PREDEFINED_GLOBAL(MPI_Errhandler, ompi_mpi_errors_are_fatal)
+#define MPI_ERRORS_RETURN OMPI_PREDEFINED_GLOBAL(MPI_Errhandler, ompi_mpi_errors_return)
+
+/* Typeclass definition for MPI_Type_match_size */
+#define MPI_TYPECLASS_INTEGER    1
+#define MPI_TYPECLASS_REAL       2
+#define MPI_TYPECLASS_COMPLEX    3
+
+
+/*
+ * MPI API
+ */
+
+OMPI_DECLSPEC  int MPI_Abort(MPI_Comm comm, int errorcode);
+OMPI_DECLSPEC  int MPI_Accumulate(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
+                                  int target_rank, MPI_Aint target_disp, int target_count,
+                                  MPI_Datatype target_datatype, MPI_Op op, MPI_Win win); 
+OMPI_DECLSPEC  int MPI_Add_error_class(int *errorclass);
+OMPI_DECLSPEC  int MPI_Add_error_code(int errorclass, int *errorcode);
+OMPI_DECLSPEC  int MPI_Add_error_string(int errorcode, char *string);
+OMPI_DECLSPEC  int MPI_Address(void *location, MPI_Aint *address);
+OMPI_DECLSPEC  int MPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                 void *recvbuf, int recvcount, 
+                                 MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                  void *recvbuf, int *recvcounts, 
+                                  int *displs, MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Alloc_mem(MPI_Aint size, MPI_Info info, 
+                                 void *baseptr);
+OMPI_DECLSPEC  int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, 
+                                 MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); 
+OMPI_DECLSPEC  int MPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                void *recvbuf, int recvcount, 
+                                MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Alltoallv(void *sendbuf, int *sendcounts, int *sdispls, 
+                                 MPI_Datatype sendtype, void *recvbuf, int *recvcounts,
+                                 int *rdispls, MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Alltoallw(void *sendbuf, int *sendcounts, int *sdispls, MPI_Datatype *sendtypes, 
+                                 void *recvbuf, int *recvcounts, int *rdispls, MPI_Datatype *recvtypes,
+                                 MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Attr_delete(MPI_Comm comm, int keyval);
+OMPI_DECLSPEC  int MPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag);
+OMPI_DECLSPEC  int MPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val);
+OMPI_DECLSPEC  int MPI_Barrier(MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype, 
+                             int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Bsend(void *buf, int count, MPI_Datatype datatype, 
+                             int dest, int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Bsend_init(void *buf, int count, MPI_Datatype datatype, 
+                                  int dest, int tag, MPI_Comm comm, MPI_Request *request); 
+OMPI_DECLSPEC  int MPI_Buffer_attach(void *buffer, int size);
+OMPI_DECLSPEC  int MPI_Buffer_detach(void *buffer, int *size);
+OMPI_DECLSPEC  int MPI_Cancel(MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int *coords);
+OMPI_DECLSPEC  int MPI_Cart_create(MPI_Comm old_comm, int ndims, int *dims, 
+                                   int *periods, int reorder, MPI_Comm *comm_cart);
+OMPI_DECLSPEC  int MPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, 
+                                int *periods, int *coords);
+OMPI_DECLSPEC  int MPI_Cart_map(MPI_Comm comm, int ndims, int *dims, 
+                                int *periods, int *newrank);
+OMPI_DECLSPEC  int MPI_Cart_rank(MPI_Comm comm, int *coords, int *rank);
+OMPI_DECLSPEC  int MPI_Cart_shift(MPI_Comm comm, int direction, int disp, 
+                                  int *rank_source, int *rank_dest);
+OMPI_DECLSPEC  int MPI_Cart_sub(MPI_Comm comm, int *remain_dims, MPI_Comm *new_comm);
+OMPI_DECLSPEC  int MPI_Cartdim_get(MPI_Comm comm, int *ndims);
+OMPI_DECLSPEC  int MPI_Close_port(char *port_name);
+OMPI_DECLSPEC  int MPI_Comm_accept(char *port_name, MPI_Info info, int root, 
+                                   MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  MPI_Fint MPI_Comm_c2f(MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Comm_call_errhandler(MPI_Comm comm, int errorcode);
+OMPI_DECLSPEC  int MPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result);
+OMPI_DECLSPEC  int MPI_Comm_connect(char *port_name, MPI_Info info, int root, 
+                                    MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int MPI_Comm_create_errhandler(MPI_Comm_errhandler_fn *function, 
+                                              MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn, 
+                                          MPI_Comm_delete_attr_function *comm_delete_attr_fn, 
+                                          int *comm_keyval, void *extra_state);
+OMPI_DECLSPEC  int MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval);
+OMPI_DECLSPEC  int MPI_Comm_disconnect(MPI_Comm *comm);
+OMPI_DECLSPEC  int MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  MPI_Comm MPI_Comm_f2c(MPI_Fint comm);
+OMPI_DECLSPEC  int MPI_Comm_free_keyval(int *comm_keyval);
+OMPI_DECLSPEC  int MPI_Comm_free(MPI_Comm *comm);
+OMPI_DECLSPEC  int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, 
+                                     void *attribute_val, int *flag);
+OMPI_DECLSPEC  int MPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *erhandler);
+OMPI_DECLSPEC  int MPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen);
+OMPI_DECLSPEC  int MPI_Comm_get_parent(MPI_Comm *parent);
+OMPI_DECLSPEC  int MPI_Comm_group(MPI_Comm comm, MPI_Group *group);
+OMPI_DECLSPEC  int MPI_Comm_join(int fd, MPI_Comm *intercomm);
+OMPI_DECLSPEC  int MPI_Comm_rank(MPI_Comm comm, int *rank);
+OMPI_DECLSPEC  int MPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group);
+OMPI_DECLSPEC  int MPI_Comm_remote_size(MPI_Comm comm, int *size);
+OMPI_DECLSPEC  int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val);
+OMPI_DECLSPEC  int MPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int MPI_Comm_set_name(MPI_Comm comm, char *comm_name);
+OMPI_DECLSPEC  int MPI_Comm_size(MPI_Comm comm, int *size);
+OMPI_DECLSPEC  int MPI_Comm_spawn(char *command, char **argv, int maxprocs, MPI_Info info, 
+                                  int root, MPI_Comm comm, MPI_Comm *intercomm, 
+                                  int *array_of_errcodes);
+OMPI_DECLSPEC  int MPI_Comm_spawn_multiple(int count, char **array_of_commands, char ***array_of_argv, 
+                                           int *array_of_maxprocs, MPI_Info *array_of_info, 
+                                           int root, MPI_Comm comm, MPI_Comm *intercomm, 
+                                           int *array_of_errcodes);
+OMPI_DECLSPEC  int MPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int MPI_Comm_test_inter(MPI_Comm comm, int *flag);
+OMPI_DECLSPEC  int MPI_Dims_create(int nnodes, int ndims, int *dims);
+OMPI_DECLSPEC  MPI_Fint MPI_Errhandler_c2f(MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int MPI_Errhandler_create(MPI_Handler_function *function, 
+                                         MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  MPI_Errhandler MPI_Errhandler_f2c(MPI_Fint errhandler);
+OMPI_DECLSPEC  int MPI_Errhandler_free(MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int MPI_Error_class(int errorcode, int *errorclass);
+OMPI_DECLSPEC  int MPI_Error_string(int errorcode, char *string, int *resultlen);
+OMPI_DECLSPEC  int MPI_Exscan(void *sendbuf, void *recvbuf, int count, 
+                              MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+OMPI_DECLSPEC  MPI_Fint MPI_File_c2f(MPI_File file);
+OMPI_DECLSPEC  MPI_File MPI_File_f2c(MPI_Fint file);
+OMPI_DECLSPEC  int MPI_File_call_errhandler(MPI_File fh, int errorcode);
+OMPI_DECLSPEC  int MPI_File_create_errhandler(MPI_File_errhandler_fn *function,
+                                              MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_File_set_errhandler( MPI_File file, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int MPI_File_get_errhandler( MPI_File file, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_File_open(MPI_Comm comm, char *filename, int amode,
+                                 MPI_Info info, MPI_File *fh);
+OMPI_DECLSPEC  int MPI_File_close(MPI_File *fh);
+OMPI_DECLSPEC  int MPI_File_delete(char *filename, MPI_Info info);
+OMPI_DECLSPEC  int MPI_File_set_size(MPI_File fh, MPI_Offset size);
+OMPI_DECLSPEC  int MPI_File_preallocate(MPI_File fh, MPI_Offset size);
+OMPI_DECLSPEC  int MPI_File_get_size(MPI_File fh, MPI_Offset *size);
+OMPI_DECLSPEC  int MPI_File_get_group(MPI_File fh, MPI_Group *group);
+OMPI_DECLSPEC  int MPI_File_get_amode(MPI_File fh, int *amode);
+OMPI_DECLSPEC  int MPI_File_set_info(MPI_File fh, MPI_Info info);
+OMPI_DECLSPEC  int MPI_File_get_info(MPI_File fh, MPI_Info *info_used);
+OMPI_DECLSPEC  int MPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
+                                     MPI_Datatype filetype, char *datarep, MPI_Info info);
+OMPI_DECLSPEC  int MPI_File_get_view(MPI_File fh, MPI_Offset *disp,
+                                     MPI_Datatype *etype, 
+                                     MPI_Datatype *filetype, char *datarep);
+OMPI_DECLSPEC  int MPI_File_read_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                    int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_read_at_all(MPI_File fh, MPI_Offset offset, void *buf,
+                                        int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                     int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_at_all(MPI_File fh, MPI_Offset offset, void *buf,
+                                         int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_iread_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                     int count, MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                      int count, MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_read(MPI_File fh, void *buf, int count,
+                                 MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_read_all(MPI_File fh, void *buf, int count,
+                                     MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write(MPI_File fh, void *buf, int count,
+                                  MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_all(MPI_File fh, void *buf, int count,
+                                      MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_iread(MPI_File fh, void *buf, int count,
+                                  MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_iwrite(MPI_File fh, void *buf, int count,
+                                   MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_seek(MPI_File fh, MPI_Offset offset, int whence);
+OMPI_DECLSPEC  int MPI_File_get_position(MPI_File fh, MPI_Offset *offset);
+OMPI_DECLSPEC  int MPI_File_get_byte_offset(MPI_File fh, MPI_Offset offset,
+                                            MPI_Offset *disp);
+OMPI_DECLSPEC  int MPI_File_read_shared(MPI_File fh, void *buf, int count,
+                                        MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_shared(MPI_File fh, void *buf, int count,
+					 MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_iread_shared(MPI_File fh, void *buf, int count,
+                                         MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_iwrite_shared(MPI_File fh, void *buf, int count,
+                                          MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_File_read_ordered(MPI_File fh, void *buf, int count,
+                                         MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_ordered(MPI_File fh, void *buf, int count,
+                                          MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence);
+OMPI_DECLSPEC  int MPI_File_get_position_shared(MPI_File fh, MPI_Offset *offset);
+OMPI_DECLSPEC  int MPI_File_read_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf,
+                                              int count, MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_read_at_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf,
+                                               int count, MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_write_at_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_read_all_begin(MPI_File fh, void *buf, int count,
+                                           MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_read_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_all_begin(MPI_File fh, void *buf, int count,
+                                            MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_write_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_read_ordered_begin(MPI_File fh, void *buf, int count,
+                                               MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_read_ordered_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_write_ordered_begin(MPI_File fh, void *buf, int count,
+                                                MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_File_write_ordered_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype,
+                                            MPI_Aint *extent);
+OMPI_DECLSPEC  int MPI_File_set_atomicity(MPI_File fh, int flag);
+OMPI_DECLSPEC  int MPI_File_get_atomicity(MPI_File fh, int *flag);
+OMPI_DECLSPEC  int MPI_File_sync(MPI_File fh);
+#endif /* #if OMPI_PROVIDE_MPI_FILE_INTERFACE */
+OMPI_DECLSPEC  int MPI_Finalize(void);
+OMPI_DECLSPEC  int MPI_Finalized(int *flag);
+OMPI_DECLSPEC  int MPI_Free_mem(void *base);
+OMPI_DECLSPEC  int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                              void *recvbuf, int recvcount, MPI_Datatype recvtype, 
+                              int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                               void *recvbuf, int *recvcounts, int *displs, 
+                               MPI_Datatype recvtype, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Get_address(void *location, MPI_Aint *address);
+OMPI_DECLSPEC  int MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count);
+OMPI_DECLSPEC  int MPI_Get_elements(MPI_Status *status, MPI_Datatype datatype, int *count);
+OMPI_DECLSPEC  int MPI_Get(void *origin_addr, int origin_count, 
+                           MPI_Datatype origin_datatype, int target_rank, 
+                           MPI_Aint target_disp, int target_count, 
+                           MPI_Datatype target_datatype, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Get_processor_name(char *name, int *resultlen);
+OMPI_DECLSPEC  int MPI_Get_version(int *version, int *subversion);
+OMPI_DECLSPEC  int MPI_Graph_create(MPI_Comm comm_old, int nnodes, int *index, 
+                                    int *edges, int reorder, MPI_Comm *comm_graph);
+OMPI_DECLSPEC  int MPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, 
+                                 int *index, int *edges);
+OMPI_DECLSPEC  int MPI_Graph_map(MPI_Comm comm, int nnodes, int *index, int *edges, 
+                                 int *newrank);
+OMPI_DECLSPEC  int MPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors);
+OMPI_DECLSPEC  int MPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, 
+                                       int *neighbors);
+OMPI_DECLSPEC  int MPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges);
+OMPI_DECLSPEC  int MPI_Grequest_complete(MPI_Request request);
+OMPI_DECLSPEC  int MPI_Grequest_start(MPI_Grequest_query_function *query_fn,
+                                      MPI_Grequest_free_function *free_fn,
+                                      MPI_Grequest_cancel_function *cancel_fn,
+                                      void *extra_state, MPI_Request *request);
+OMPI_DECLSPEC  MPI_Fint MPI_Group_c2f(MPI_Group group);
+OMPI_DECLSPEC  int MPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result);
+OMPI_DECLSPEC  int MPI_Group_difference(MPI_Group group1, MPI_Group group2, 
+                                        MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Group_excl(MPI_Group group, int n, int *ranks, 
+                                  MPI_Group *newgroup);
+OMPI_DECLSPEC  MPI_Group MPI_Group_f2c(MPI_Fint group);
+OMPI_DECLSPEC  int MPI_Group_free(MPI_Group *group);
+OMPI_DECLSPEC  int MPI_Group_incl(MPI_Group group, int n, int *ranks, 
+                                  MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Group_intersection(MPI_Group group1, MPI_Group group2, 
+                                          MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], 
+                                        MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], 
+                                        MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Group_rank(MPI_Group group, int *rank);
+OMPI_DECLSPEC  int MPI_Group_size(MPI_Group group, int *size);
+OMPI_DECLSPEC  int MPI_Group_translate_ranks(MPI_Group group1, int n, int *ranks1, 
+                                             MPI_Group group2, int *ranks2);
+OMPI_DECLSPEC  int MPI_Group_union(MPI_Group group1, MPI_Group group2, 
+                                   MPI_Group *newgroup);
+OMPI_DECLSPEC  int MPI_Ibsend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  MPI_Fint MPI_Info_c2f(MPI_Info info);
+OMPI_DECLSPEC  int MPI_Info_create(MPI_Info *info);
+OMPI_DECLSPEC  int MPI_Info_delete(MPI_Info info, char *key);
+OMPI_DECLSPEC  int MPI_Info_dup(MPI_Info info, MPI_Info *newinfo);
+OMPI_DECLSPEC  MPI_Info MPI_Info_f2c(MPI_Fint info);
+OMPI_DECLSPEC  int MPI_Info_free(MPI_Info *info);
+OMPI_DECLSPEC  int MPI_Info_get(MPI_Info info, char *key, int valuelen, 
+                                char *value, int *flag);
+OMPI_DECLSPEC  int MPI_Info_get_nkeys(MPI_Info info, int *nkeys);
+OMPI_DECLSPEC  int MPI_Info_get_nthkey(MPI_Info info, int n, char *key);
+OMPI_DECLSPEC  int MPI_Info_get_valuelen(MPI_Info info, char *key, int *valuelen, 
+                                         int *flag);
+OMPI_DECLSPEC  int MPI_Info_set(MPI_Info info, char *key, char *value);
+OMPI_DECLSPEC  int MPI_Init(int *argc, char ***argv);
+OMPI_DECLSPEC  int MPI_Initialized(int *flag);
+OMPI_DECLSPEC  int MPI_Init_thread(int *argc, char ***argv, int required, 
+                                   int *provided);
+OMPI_DECLSPEC  int MPI_Intercomm_create(MPI_Comm local_comm, int local_leader, 
+                                        MPI_Comm bridge_comm, int remote_leader, 
+                                        int tag, MPI_Comm *newintercomm);
+OMPI_DECLSPEC  int MPI_Intercomm_merge(MPI_Comm intercomm, int high, 
+                                       MPI_Comm *newintercomm);
+OMPI_DECLSPEC  int MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, 
+                              MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, 
+                             int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Irsend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                             int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Is_thread_main(int *flag);
+OMPI_DECLSPEC  int MPI_Keyval_create(MPI_Copy_function *copy_fn, 
+                                     MPI_Delete_function *delete_fn, 
+                                     int *keyval, void *extra_state);
+OMPI_DECLSPEC  int MPI_Keyval_free(int *keyval);
+OMPI_DECLSPEC  int MPI_Lookup_name(char *service_name, MPI_Info info, char *port_name);
+OMPI_DECLSPEC  MPI_Fint MPI_Op_c2f(MPI_Op op); 
+OMPI_DECLSPEC  int MPI_Op_create(MPI_User_function *function, int commute, MPI_Op *op);
+OMPI_DECLSPEC  int MPI_Open_port(MPI_Info info, char *port_name);
+OMPI_DECLSPEC  MPI_Op MPI_Op_f2c(MPI_Fint op);
+OMPI_DECLSPEC  int MPI_Op_free(MPI_Op *op);
+OMPI_DECLSPEC  int MPI_Pack_external(char *datarep, void *inbuf, int incount,
+                                     MPI_Datatype datatype, void *outbuf,
+                                     MPI_Aint outsize, MPI_Aint *position);
+OMPI_DECLSPEC  int MPI_Pack_external_size(char *datarep, int incount, 
+                                          MPI_Datatype datatype, MPI_Aint *size);
+OMPI_DECLSPEC  int MPI_Pack(void *inbuf, int incount, MPI_Datatype datatype, 
+                            void *outbuf, int outsize, int *position, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, 
+                                 int *size);
+OMPI_DECLSPEC  int MPI_Pcontrol(const int level, ...);
+OMPI_DECLSPEC  int MPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Publish_name(char *service_name, MPI_Info info, 
+                                    char *port_name);
+OMPI_DECLSPEC  int MPI_Put(void *origin_addr, int origin_count, MPI_Datatype origin_datatype, 
+                           int target_rank, MPI_Aint target_disp, int target_count, 
+                           MPI_Datatype target_datatype, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Query_thread(int *provided);
+OMPI_DECLSPEC  int MPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source,
+                                 int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, 
+                            int tag, MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Reduce(void *sendbuf, void *recvbuf, int count, 
+                              MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, 
+                                      MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Register_datarep(char *datarep, 
+                                        MPI_Datarep_conversion_function *read_conversion_fn,
+                                        MPI_Datarep_conversion_function *write_conversion_fn,
+                                        MPI_Datarep_extent_function *dtype_file_extent_fn,
+                                        void *extra_state);
+OMPI_DECLSPEC  MPI_Fint MPI_Request_c2f(MPI_Request request);
+OMPI_DECLSPEC  MPI_Request MPI_Request_f2c(MPI_Fint request);
+OMPI_DECLSPEC  int MPI_Request_free(MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Request_get_status(MPI_Request request, int *flag, 
+                                          MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Rsend(void *ibuf, int count, MPI_Datatype datatype, int dest, 
+                             int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Rsend_init(void *buf, int count, MPI_Datatype datatype, 
+                                  int dest, int tag, MPI_Comm comm, 
+                                  MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Scan(void *sendbuf, void *recvbuf, int count, 
+                            MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                               void *recvbuf, int recvcount, MPI_Datatype recvtype, 
+                               int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, 
+                                MPI_Datatype sendtype, void *recvbuf, int recvcount, 
+                                MPI_Datatype recvtype, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Send_init(void *buf, int count, MPI_Datatype datatype, 
+                                 int dest, int tag, MPI_Comm comm, 
+                                 MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, 
+                            int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                int dest, int sendtag, void *recvbuf, int recvcount,
+                                MPI_Datatype recvtype, int source, int recvtag, 
+                                MPI_Comm comm,  MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Sendrecv_replace(void * buf, int count, MPI_Datatype datatype, 
+                                        int dest, int sendtag, int source, int recvtag,
+                                        MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Ssend_init(void *buf, int count, MPI_Datatype datatype, 
+                                  int dest, int tag, MPI_Comm comm, 
+                                  MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                             int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Start(MPI_Request *request);
+OMPI_DECLSPEC  int MPI_Startall(int count, MPI_Request *array_of_requests);
+OMPI_DECLSPEC  int MPI_Status_c2f(MPI_Status *c_status, MPI_Fint *f_status);
+OMPI_DECLSPEC  int MPI_Status_f2c(MPI_Fint *f_status, MPI_Status *c_status);
+OMPI_DECLSPEC  int MPI_Status_set_cancelled(MPI_Status *status, int flag);
+OMPI_DECLSPEC  int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype,
+                                           int count);
+OMPI_DECLSPEC  int MPI_Testall(int count, MPI_Request array_of_requests[], int *flag, 
+                               MPI_Status array_of_statuses[]);
+OMPI_DECLSPEC  int MPI_Testany(int count, MPI_Request array_of_requests[], int *index, 
+                               int *flag, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Test(MPI_Request *request, int *flag, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Test_cancelled(MPI_Status *status, int *flag);
+OMPI_DECLSPEC  int MPI_Testsome(int incount, MPI_Request array_of_requests[], 
+                                int *outcount, int array_of_indices[], 
+                                MPI_Status array_of_statuses[]);
+OMPI_DECLSPEC  int MPI_Topo_test(MPI_Comm comm, int *status);
+OMPI_DECLSPEC  MPI_Fint MPI_Type_c2f(MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_Type_commit(MPI_Datatype *type);
+OMPI_DECLSPEC  int MPI_Type_contiguous(int count, MPI_Datatype oldtype, 
+                                       MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_darray(int size, int rank, int ndims, 
+                                          int gsize_array[], int distrib_array[], 
+                                          int darg_array[], int psize_array[],
+                                          int order, MPI_Datatype oldtype, 
+                                          MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_f90_complex(int p, int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_f90_integer(int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_f90_real(int p, int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_hindexed(int count, int array_of_blocklengths[], 
+                                            MPI_Aint array_of_displacements[], 
+                                            MPI_Datatype oldtype, 
+                                            MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, 
+                                           MPI_Datatype oldtype, 
+                                           MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_keyval(MPI_Type_copy_attr_function *type_copy_attr_fn, 
+                                          MPI_Type_delete_attr_function *type_delete_attr_fn, 
+                                          int *type_keyval, void *extra_state);
+OMPI_DECLSPEC  int MPI_Type_create_indexed_block(int count, int blocklength,
+                                                 int array_of_displacements[],
+                                                 MPI_Datatype oldtype,
+                                                 MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_struct(int count, int array_of_block_lengths[], 
+                                          MPI_Aint array_of_displacements[], 
+                                          MPI_Datatype array_of_types[], 
+                                          MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_subarray(int ndims, int size_array[], int subsize_array[], 
+                                            int start_array[], int order, 
+                                            MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, 
+                                           MPI_Aint extent, MPI_Datatype *newtype); 
+OMPI_DECLSPEC  int MPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
+OMPI_DECLSPEC  int MPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_extent(MPI_Datatype type, MPI_Aint *extent);
+OMPI_DECLSPEC  int MPI_Type_free(MPI_Datatype *type);
+OMPI_DECLSPEC  int MPI_Type_free_keyval(int *type_keyval);
+OMPI_DECLSPEC  MPI_Datatype MPI_Type_f2c(MPI_Fint datatype);
+OMPI_DECLSPEC  int MPI_Type_get_attr(MPI_Datatype type, int type_keyval, 
+                                     void *attribute_val, int *flag);
+OMPI_DECLSPEC  int MPI_Type_get_contents(MPI_Datatype mtype, int max_integers, 
+                                         int max_addresses, int max_datatypes, 
+                                         int array_of_integers[], 
+                                         MPI_Aint array_of_addresses[], 
+                                         MPI_Datatype array_of_datatypes[]);
+OMPI_DECLSPEC  int MPI_Type_get_envelope(MPI_Datatype type, int *num_integers, 
+                                         int *num_addresses, int *num_datatypes, 
+                                         int *combiner);
+OMPI_DECLSPEC  int MPI_Type_get_extent(MPI_Datatype type, MPI_Aint *lb, 
+                                       MPI_Aint *extent);
+OMPI_DECLSPEC  int MPI_Type_get_name(MPI_Datatype type, char *type_name, 
+                                     int *resultlen);
+OMPI_DECLSPEC  int MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, 
+                                            MPI_Aint *true_extent);
+OMPI_DECLSPEC  int MPI_Type_hindexed(int count, int array_of_blocklengths[], 
+                                     MPI_Aint array_of_displacements[], 
+                                     MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, 
+                                    MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_indexed(int count, int array_of_blocklengths[], 
+                                    int array_of_displacements[], 
+                                    MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_lb(MPI_Datatype type, MPI_Aint *lb);
+OMPI_DECLSPEC  int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
+OMPI_DECLSPEC  int MPI_Type_set_attr(MPI_Datatype type, int type_keyval, 
+                                     void *attr_val);
+OMPI_DECLSPEC  int MPI_Type_set_name(MPI_Datatype type, char *type_name);
+OMPI_DECLSPEC  int MPI_Type_size(MPI_Datatype type, int *size);
+OMPI_DECLSPEC  int MPI_Type_struct(int count, int array_of_blocklengths[], 
+                                   MPI_Aint array_of_displacements[], 
+                                   MPI_Datatype array_of_types[], 
+                                   MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub);
+OMPI_DECLSPEC  int MPI_Type_vector(int count, int blocklength, int stride, 
+                                   MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int MPI_Unpack(void *inbuf, int insize, int *position, 
+                              void *outbuf, int outcount, MPI_Datatype datatype, 
+                              MPI_Comm comm);
+OMPI_DECLSPEC  int MPI_Unpublish_name(char *service_name, MPI_Info info, char *port_name);
+OMPI_DECLSPEC  int MPI_Unpack_external (char *datarep, void *inbuf, MPI_Aint insize,
+                                        MPI_Aint *position, void *outbuf, int outcount,
+                                        MPI_Datatype datatype);
+OMPI_DECLSPEC  int MPI_Waitall(int count, MPI_Request *array_of_requests, 
+                               MPI_Status *array_of_statuses);
+OMPI_DECLSPEC  int MPI_Waitany(int count, MPI_Request *array_of_requests, 
+                               int *index, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Wait(MPI_Request *request, MPI_Status *status);
+OMPI_DECLSPEC  int MPI_Waitsome(int incount, MPI_Request *array_of_requests, 
+                                int *outcount, int *array_of_indices, 
+                                MPI_Status *array_of_statuses);
+OMPI_DECLSPEC  MPI_Fint MPI_Win_c2f(MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_call_errhandler(MPI_Win win, int errorcode);
+OMPI_DECLSPEC  int MPI_Win_complete(MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, 
+                                  MPI_Info info, MPI_Comm comm, MPI_Win *win);
+OMPI_DECLSPEC  int MPI_Win_create_errhandler(MPI_Win_errhandler_fn *function, 
+                                             MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_Win_create_keyval(MPI_Win_copy_attr_function *win_copy_attr_fn, 
+                                         MPI_Win_delete_attr_function *win_delete_attr_fn, 
+                                         int *win_keyval, void *extra_state);
+OMPI_DECLSPEC  int MPI_Win_delete_attr(MPI_Win win, int win_keyval);
+OMPI_DECLSPEC  MPI_Win MPI_Win_f2c(MPI_Fint win);
+OMPI_DECLSPEC  int MPI_Win_fence(int assert, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_free(MPI_Win *win);
+OMPI_DECLSPEC  int MPI_Win_free_keyval(int *win_keyval);
+OMPI_DECLSPEC  int MPI_Win_get_attr(MPI_Win win, int win_keyval, 
+                                    void *attribute_val, int *flag);
+OMPI_DECLSPEC  int MPI_Win_get_errhandler(MPI_Win win, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int MPI_Win_get_group(MPI_Win win, MPI_Group *group);
+OMPI_DECLSPEC  int MPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen);
+OMPI_DECLSPEC  int MPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_post(MPI_Group group, int assert, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val);
+OMPI_DECLSPEC  int MPI_Win_set_errhandler(MPI_Win win, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int MPI_Win_set_name(MPI_Win win, char *win_name);
+OMPI_DECLSPEC  int MPI_Win_start(MPI_Group group, int assert, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_test(MPI_Win win, int *flag);
+OMPI_DECLSPEC  int MPI_Win_unlock(int rank, MPI_Win win);
+OMPI_DECLSPEC  int MPI_Win_wait(MPI_Win win);
+OMPI_DECLSPEC  double MPI_Wtick(void);
+OMPI_DECLSPEC  double MPI_Wtime(void);
+
+
+  /*
+   * Profiling MPI API
+   */
+OMPI_DECLSPEC  int PMPI_Abort(MPI_Comm comm, int errorcode);
+OMPI_DECLSPEC  int PMPI_Accumulate(void *origin_addr, int origin_count, MPI_Datatype origin_datatype,
+                                   int target_rank, MPI_Aint target_disp, int target_count,
+                                   MPI_Datatype target_datatype, MPI_Op op, MPI_Win win); 
+OMPI_DECLSPEC  int PMPI_Add_error_class(int *errorclass);
+OMPI_DECLSPEC  int PMPI_Add_error_code(int errorclass, int *errorcode);
+OMPI_DECLSPEC  int PMPI_Add_error_string(int errorcode, char *string);
+OMPI_DECLSPEC  int PMPI_Address(void *location, MPI_Aint *address);
+OMPI_DECLSPEC  int PMPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                  void *recvbuf, int recvcount, 
+                                  MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                   void *recvbuf, int *recvcounts, 
+                                   int *displs, MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Alloc_mem(MPI_Aint size, MPI_Info info, 
+                                  void *baseptr);
+OMPI_DECLSPEC  int PMPI_Allreduce(void *sendbuf, void *recvbuf, int count, 
+                                  MPI_Datatype datatype, MPI_Op op, MPI_Comm comm); 
+OMPI_DECLSPEC  int PMPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                 void *recvbuf, int recvcount, 
+                                 MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Alltoallv(void *sendbuf, int *sendcounts, int *sdispls, 
+                                  MPI_Datatype sendtype, void *recvbuf, int *recvcounts,
+                                  int *rdispls, MPI_Datatype recvtype, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Alltoallw(void *sendbuf, int *sendcounts, int *sdispls, MPI_Datatype *sendtypes, 
+                    void *recvbuf, int *recvcounts, int *rdispls, MPI_Datatype *recvtypes,
+                    MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Attr_delete(MPI_Comm comm, int keyval);
+OMPI_DECLSPEC  int PMPI_Attr_get(MPI_Comm comm, int keyval, void *attribute_val, int *flag);
+OMPI_DECLSPEC  int PMPI_Attr_put(MPI_Comm comm, int keyval, void *attribute_val);
+OMPI_DECLSPEC  int PMPI_Barrier(MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Bcast(void *buffer, int count, MPI_Datatype datatype, 
+                              int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Bsend(void *buf, int count, MPI_Datatype datatype, 
+                              int dest, int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Bsend_init(void *buf, int count, MPI_Datatype datatype, 
+                                   int dest, int tag, MPI_Comm comm, MPI_Request *request); 
+OMPI_DECLSPEC  int PMPI_Buffer_attach(void *buffer, int size);
+OMPI_DECLSPEC  int PMPI_Buffer_detach(void *buffer, int *size);
+OMPI_DECLSPEC  int PMPI_Cancel(MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int *coords);
+OMPI_DECLSPEC  int PMPI_Cart_create(MPI_Comm old_comm, int ndims, int *dims, 
+                                    int *periods, int reorder, MPI_Comm *comm_cart);
+OMPI_DECLSPEC  int PMPI_Cart_get(MPI_Comm comm, int maxdims, int *dims, 
+                                 int *periods, int *coords);
+OMPI_DECLSPEC  int PMPI_Cart_map(MPI_Comm comm, int ndims, int *dims, 
+                                 int *periods, int *newrank);
+OMPI_DECLSPEC  int PMPI_Cart_rank(MPI_Comm comm, int *coords, int *rank);
+OMPI_DECLSPEC  int PMPI_Cart_shift(MPI_Comm comm, int direction, int disp, 
+                                   int *rank_source, int *rank_dest);
+OMPI_DECLSPEC  int PMPI_Cart_sub(MPI_Comm comm, int *remain_dims, MPI_Comm *new_comm);
+OMPI_DECLSPEC  int PMPI_Cartdim_get(MPI_Comm comm, int *ndims);
+OMPI_DECLSPEC  int PMPI_Close_port(char *port_name);
+OMPI_DECLSPEC  int PMPI_Comm_accept(char *port_name, MPI_Info info, int root, 
+                                    MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  MPI_Fint PMPI_Comm_c2f(MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Comm_call_errhandler(MPI_Comm comm, int errorcode);
+OMPI_DECLSPEC  int PMPI_Comm_compare(MPI_Comm comm1, MPI_Comm comm2, int *result);
+OMPI_DECLSPEC  int PMPI_Comm_connect(char *port_name, MPI_Info info, int root, 
+                                     MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int PMPI_Comm_create_errhandler(MPI_Comm_errhandler_fn *function, 
+                                               MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn, 
+                                           MPI_Comm_delete_attr_function *comm_delete_attr_fn, 
+                                           int *comm_keyval, void *extra_state);
+OMPI_DECLSPEC  int PMPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int PMPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval);
+OMPI_DECLSPEC  int PMPI_Comm_disconnect(MPI_Comm *comm);
+OMPI_DECLSPEC  int PMPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm);
+OMPI_DECLSPEC  MPI_Comm PMPI_Comm_f2c(MPI_Fint comm);
+OMPI_DECLSPEC  int PMPI_Comm_free_keyval(int *comm_keyval);
+OMPI_DECLSPEC  int PMPI_Comm_free(MPI_Comm *comm);
+OMPI_DECLSPEC  int PMPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, 
+                                      void *attribute_val, int *flag);
+OMPI_DECLSPEC  int PMPI_Comm_get_errhandler(MPI_Comm comm, MPI_Errhandler *erhandler);
+OMPI_DECLSPEC  int PMPI_Comm_get_name(MPI_Comm comm, char *comm_name, int *resultlen);
+OMPI_DECLSPEC  int PMPI_Comm_get_parent(MPI_Comm *parent);
+OMPI_DECLSPEC  int PMPI_Comm_group(MPI_Comm comm, MPI_Group *group);
+OMPI_DECLSPEC  int PMPI_Comm_join(int fd, MPI_Comm *intercomm);
+OMPI_DECLSPEC  int PMPI_Comm_rank(MPI_Comm comm, int *rank);
+OMPI_DECLSPEC  int PMPI_Comm_remote_group(MPI_Comm comm, MPI_Group *group);
+OMPI_DECLSPEC  int PMPI_Comm_remote_size(MPI_Comm comm, int *size);
+OMPI_DECLSPEC  int PMPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val);
+OMPI_DECLSPEC  int PMPI_Comm_set_errhandler(MPI_Comm comm, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int PMPI_Comm_set_name(MPI_Comm comm, char *comm_name);
+OMPI_DECLSPEC  int PMPI_Comm_size(MPI_Comm comm, int *size);
+OMPI_DECLSPEC  int PMPI_Comm_spawn(char *command, char **argv, int maxprocs, MPI_Info info, 
+                                   int root, MPI_Comm comm, MPI_Comm *intercomm, 
+                                   int *array_of_errcodes);
+OMPI_DECLSPEC  int PMPI_Comm_spawn_multiple(int count, char **array_of_commands, char ***array_of_argv, 
+                                            int *array_of_maxprocs, MPI_Info *array_of_info, 
+                                            int root, MPI_Comm comm, MPI_Comm *intercomm, 
+                                            int *array_of_errcodes);
+OMPI_DECLSPEC  int PMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *newcomm);
+OMPI_DECLSPEC  int PMPI_Comm_test_inter(MPI_Comm comm, int *flag);
+OMPI_DECLSPEC  int PMPI_Dims_create(int nnodes, int ndims, int *dims);
+OMPI_DECLSPEC  MPI_Fint PMPI_Errhandler_c2f(MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int PMPI_Errhandler_create(MPI_Handler_function *function,
+                                          MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  MPI_Errhandler PMPI_Errhandler_f2c(MPI_Fint errhandler);
+OMPI_DECLSPEC  int PMPI_Errhandler_free(MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_Errhandler_get(MPI_Comm comm, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_Errhandler_set(MPI_Comm comm, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int PMPI_Error_class(int errorcode, int *errorclass);
+OMPI_DECLSPEC  int PMPI_Error_string(int errorcode, char *string, int *resultlen);
+OMPI_DECLSPEC  int PMPI_Exscan(void *sendbuf, void *recvbuf, int count,
+                               MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+OMPI_DECLSPEC  MPI_Fint PMPI_File_c2f(MPI_File file);
+OMPI_DECLSPEC  MPI_File PMPI_File_f2c(MPI_Fint file);
+OMPI_DECLSPEC  int PMPI_File_call_errhandler(MPI_File fh, int errorcode);
+OMPI_DECLSPEC  int PMPI_File_create_errhandler(MPI_File_errhandler_fn *function,
+                                               MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_File_set_errhandler( MPI_File file, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int PMPI_File_get_errhandler( MPI_File file, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_File_open(MPI_Comm comm, char *filename, int amode,
+                                  MPI_Info info, MPI_File *fh);
+OMPI_DECLSPEC  int PMPI_File_close(MPI_File *fh);
+OMPI_DECLSPEC  int PMPI_File_delete(char *filename, MPI_Info info);
+OMPI_DECLSPEC  int PMPI_File_set_size(MPI_File fh, MPI_Offset size);
+OMPI_DECLSPEC  int PMPI_File_preallocate(MPI_File fh, MPI_Offset size);
+OMPI_DECLSPEC  int PMPI_File_get_size(MPI_File fh, MPI_Offset *size);
+OMPI_DECLSPEC  int PMPI_File_get_group(MPI_File fh, MPI_Group *group);
+OMPI_DECLSPEC  int PMPI_File_get_amode(MPI_File fh, int *amode);
+OMPI_DECLSPEC  int PMPI_File_set_info(MPI_File fh, MPI_Info info);
+OMPI_DECLSPEC  int PMPI_File_get_info(MPI_File fh, MPI_Info *info_used);
+OMPI_DECLSPEC  int PMPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
+                                      MPI_Datatype filetype, char *datarep, MPI_Info info);
+OMPI_DECLSPEC  int PMPI_File_get_view(MPI_File fh, MPI_Offset *disp,
+                                      MPI_Datatype *etype, 
+                                      MPI_Datatype *filetype, char *datarep);
+OMPI_DECLSPEC  int PMPI_File_read_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                     int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_read_at_all(MPI_File fh, MPI_Offset offset, void *buf,
+                                         int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                      int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_at_all(MPI_File fh, MPI_Offset offset, void *buf,
+                                          int count, MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_iread_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                      int count, MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_iwrite_at(MPI_File fh, MPI_Offset offset, void *buf,
+                                       int count, MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_read(MPI_File fh, void *buf, int count,
+                                  MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_read_all(MPI_File fh, void *buf, int count,
+                                      MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write(MPI_File fh, void *buf, int count,
+                                   MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_all(MPI_File fh, void *buf, int count,
+                                       MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_iread(MPI_File fh, void *buf, int count,
+                                   MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_iwrite(MPI_File fh, void *buf, int count,
+                                    MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_seek(MPI_File fh, MPI_Offset offset, int whence);
+OMPI_DECLSPEC  int PMPI_File_get_position(MPI_File fh, MPI_Offset *offset);
+OMPI_DECLSPEC  int PMPI_File_get_byte_offset(MPI_File fh, MPI_Offset offset,
+                                             MPI_Offset *disp);
+OMPI_DECLSPEC  int PMPI_File_read_shared(MPI_File fh, void *buf, int count,
+                                         MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_shared(MPI_File fh, void *buf, int count,
+                                          MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_iread_shared(MPI_File fh, void *buf, int count,
+                                          MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_iwrite_shared(MPI_File fh, void *buf, int count,
+                                           MPI_Datatype datatype, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_File_read_ordered(MPI_File fh, void *buf, int count,
+                                          MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_ordered(MPI_File fh, void *buf, int count,
+                                           MPI_Datatype datatype, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence);
+OMPI_DECLSPEC  int PMPI_File_get_position_shared(MPI_File fh, MPI_Offset *offset);
+OMPI_DECLSPEC  int PMPI_File_read_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf,
+                                               int count, MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_read_at_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_at_all_begin(MPI_File fh, MPI_Offset offset, void *buf,
+                                                int count, MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_write_at_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_read_all_begin(MPI_File fh, void *buf, int count,
+                                            MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_read_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_all_begin(MPI_File fh, void *buf, int count,
+                                             MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_write_all_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_read_ordered_begin(MPI_File fh, void *buf, int count,
+                                                MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_read_ordered_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_write_ordered_begin(MPI_File fh, void *buf, int count,
+                                                 MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_File_write_ordered_end(MPI_File fh, void *buf, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_File_get_type_extent(MPI_File fh, MPI_Datatype datatype,
+                                             MPI_Aint *extent);
+OMPI_DECLSPEC  int PMPI_File_set_atomicity(MPI_File fh, int flag);
+OMPI_DECLSPEC  int PMPI_File_get_atomicity(MPI_File fh, int *flag);
+OMPI_DECLSPEC  int PMPI_File_sync(MPI_File fh);
+#endif /* #if OMPI_PROVIDE_MPI_FILE_INTERFACE */
+OMPI_DECLSPEC  int PMPI_Finalize(void);
+OMPI_DECLSPEC  int PMPI_Finalized(int *flag);
+OMPI_DECLSPEC  int PMPI_Free_mem(void *base);
+OMPI_DECLSPEC  int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                               void *recvbuf, int recvcount, MPI_Datatype recvtype, 
+                               int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                void *recvbuf, int *recvcounts, int *displs, 
+                                MPI_Datatype recvtype, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Get_address(void *location, MPI_Aint *address);
+OMPI_DECLSPEC  int PMPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count);
+OMPI_DECLSPEC  int PMPI_Get_elements(MPI_Status *status, MPI_Datatype datatype, 
+                                     int *count);
+OMPI_DECLSPEC  int PMPI_Get(void *origin_addr, int origin_count, 
+                            MPI_Datatype origin_datatype, int target_rank, 
+                            MPI_Aint target_disp, int target_count, 
+                            MPI_Datatype target_datatype, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Get_processor_name(char *name, int *resultlen);
+OMPI_DECLSPEC  int PMPI_Get_version(int *version, int *subversion);
+OMPI_DECLSPEC  int PMPI_Graph_create(MPI_Comm comm_old, int nnodes, int *index, 
+                                     int *edges, int reorder, MPI_Comm *comm_graph);
+OMPI_DECLSPEC  int PMPI_Graph_get(MPI_Comm comm, int maxindex, int maxedges, 
+                                  int *index, int *edges);
+OMPI_DECLSPEC  int PMPI_Graph_map(MPI_Comm comm, int nnodes, int *index, int *edges, 
+                                  int *newrank);
+OMPI_DECLSPEC  int PMPI_Graph_neighbors_count(MPI_Comm comm, int rank, int *nneighbors);
+OMPI_DECLSPEC  int PMPI_Graph_neighbors(MPI_Comm comm, int rank, int maxneighbors, 
+                                        int *neighbors);
+OMPI_DECLSPEC  int PMPI_Graphdims_get(MPI_Comm comm, int *nnodes, int *nedges);
+OMPI_DECLSPEC  int PMPI_Grequest_complete(MPI_Request request);
+OMPI_DECLSPEC  int PMPI_Grequest_start(MPI_Grequest_query_function *query_fn,
+                                       MPI_Grequest_free_function *free_fn,
+                                       MPI_Grequest_cancel_function *cancel_fn,
+                                       void *extra_state, MPI_Request *request);
+OMPI_DECLSPEC  MPI_Fint PMPI_Group_c2f(MPI_Group group);
+OMPI_DECLSPEC  int PMPI_Group_compare(MPI_Group group1, MPI_Group group2, int *result);
+OMPI_DECLSPEC  int PMPI_Group_difference(MPI_Group group1, MPI_Group group2, 
+                                         MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Group_excl(MPI_Group group, int n, int *ranks, 
+                                   MPI_Group *newgroup);
+OMPI_DECLSPEC  MPI_Group PMPI_Group_f2c(MPI_Fint group);
+OMPI_DECLSPEC  int PMPI_Group_free(MPI_Group *group);
+OMPI_DECLSPEC  int PMPI_Group_incl(MPI_Group group, int n, int *ranks, 
+                                   MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Group_intersection(MPI_Group group1, MPI_Group group2, 
+                                           MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Group_range_excl(MPI_Group group, int n, int ranges[][3], 
+                                         MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Group_range_incl(MPI_Group group, int n, int ranges[][3], 
+                                         MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Group_rank(MPI_Group group, int *rank);
+OMPI_DECLSPEC  int PMPI_Group_size(MPI_Group group, int *size);
+OMPI_DECLSPEC  int PMPI_Group_translate_ranks(MPI_Group group1, int n, int *ranks1, 
+                                              MPI_Group group2, int *ranks2);
+OMPI_DECLSPEC  int PMPI_Group_union(MPI_Group group1, MPI_Group group2, 
+                                    MPI_Group *newgroup);
+OMPI_DECLSPEC  int PMPI_Ibsend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                               int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  MPI_Fint PMPI_Info_c2f(MPI_Info info);
+OMPI_DECLSPEC  int PMPI_Info_create(MPI_Info *info);
+OMPI_DECLSPEC  int PMPI_Info_delete(MPI_Info info, char *key);
+OMPI_DECLSPEC  int PMPI_Info_dup(MPI_Info info, MPI_Info *newinfo);
+OMPI_DECLSPEC  MPI_Info PMPI_Info_f2c(MPI_Fint info);
+OMPI_DECLSPEC  int PMPI_Info_free(MPI_Info *info);
+OMPI_DECLSPEC  int PMPI_Info_get(MPI_Info info, char *key, int valuelen, 
+                                 char *value, int *flag);
+OMPI_DECLSPEC  int PMPI_Info_get_nkeys(MPI_Info info, int *nkeys);
+OMPI_DECLSPEC  int PMPI_Info_get_nthkey(MPI_Info info, int n, char *key);
+OMPI_DECLSPEC  int PMPI_Info_get_valuelen(MPI_Info info, char *key, int *valuelen, 
+                                          int *flag);
+OMPI_DECLSPEC  int PMPI_Info_set(MPI_Info info, char *key, char *value);
+OMPI_DECLSPEC  int PMPI_Init(int *argc, char ***argv);
+OMPI_DECLSPEC  int PMPI_Initialized(int *flag);
+OMPI_DECLSPEC  int PMPI_Init_thread(int *argc, char ***argv, int required, 
+                                    int *provided);
+OMPI_DECLSPEC  int PMPI_Intercomm_create(MPI_Comm local_comm, int local_leader, 
+                                         MPI_Comm bridge_comm, int remote_leader, 
+                                         int tag, MPI_Comm *newintercomm);
+OMPI_DECLSPEC  int PMPI_Intercomm_merge(MPI_Comm intercomm, int high, 
+                                        MPI_Comm *newintercomm);
+OMPI_DECLSPEC  int PMPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, 
+                               MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Irecv(void *buf, int count, MPI_Datatype datatype, int source, 
+                              int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Irsend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                               int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Issend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                               int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Is_thread_main(int *flag);
+OMPI_DECLSPEC  int PMPI_Keyval_create(MPI_Copy_function *copy_fn, 
+                                      MPI_Delete_function *delete_fn, 
+                                      int *keyval, void *extra_state);
+OMPI_DECLSPEC  int PMPI_Keyval_free(int *keyval);
+OMPI_DECLSPEC  int PMPI_Lookup_name(char *service_name, MPI_Info info, char *port_name);
+OMPI_DECLSPEC  MPI_Fint PMPI_Op_c2f(MPI_Op op); 
+OMPI_DECLSPEC  int PMPI_Op_create(MPI_User_function *function, int commute, 
+                                  MPI_Op *op);
+OMPI_DECLSPEC  int PMPI_Open_port(MPI_Info info, char *port_name);
+OMPI_DECLSPEC  MPI_Op PMPI_Op_f2c(MPI_Fint op);
+OMPI_DECLSPEC  int PMPI_Op_free(MPI_Op *op);
+OMPI_DECLSPEC  int PMPI_Pack_external(char *datarep, void *inbuf, int incount,
+                                      MPI_Datatype datatype, void *outbuf,
+                                      MPI_Aint outsize, MPI_Aint *position);
+OMPI_DECLSPEC  int PMPI_Pack_external_size(char *datarep, int incount, 
+                                           MPI_Datatype datatype, MPI_Aint *size);
+OMPI_DECLSPEC  int PMPI_Pack(void *inbuf, int incount, MPI_Datatype datatype, 
+                             void *outbuf, int outsize, int *position, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, 
+                                  int *size);
+OMPI_DECLSPEC  int PMPI_Pcontrol(const int level, ...);
+OMPI_DECLSPEC  int PMPI_Probe(int source, int tag, MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Publish_name(char *service_name, MPI_Info info, 
+                                     char *port_name);
+OMPI_DECLSPEC  int PMPI_Put(void *origin_addr, int origin_count, MPI_Datatype origin_datatype, 
+                            int target_rank, MPI_Aint target_disp, int target_count, 
+                            MPI_Datatype target_datatype, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Query_thread(int *provided);
+OMPI_DECLSPEC  int PMPI_Recv_init(void *buf, int count, MPI_Datatype datatype, int source,
+                                  int tag, MPI_Comm comm, MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, 
+                             int tag, MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Reduce(void *sendbuf, void *recvbuf, int count, 
+                               MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, 
+                                       MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Register_datarep(char *datarep, 
+                                         MPI_Datarep_conversion_function *read_conversion_fn,
+                                         MPI_Datarep_conversion_function *write_conversion_fn,
+                                         MPI_Datarep_extent_function *dtype_file_extent_fn,
+                                         void *extra_state);
+OMPI_DECLSPEC  MPI_Fint PMPI_Request_c2f(MPI_Request request);
+OMPI_DECLSPEC  MPI_Request PMPI_Request_f2c(MPI_Fint request);
+OMPI_DECLSPEC  int PMPI_Request_free(MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Request_get_status(MPI_Request request, int *flag, 
+                                           MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Rsend(void *ibuf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Rsend_init(void *buf, int count, MPI_Datatype datatype, 
+                                   int dest, int tag, MPI_Comm comm, 
+                                   MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Scan(void *sendbuf, void *recvbuf, int count, 
+                             MPI_Datatype datatype, MPI_Op op, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                void *recvbuf, int recvcount, MPI_Datatype recvtype, 
+                                int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs, 
+                                 MPI_Datatype sendtype, void *recvbuf, int recvcount, 
+                                 MPI_Datatype recvtype, int root, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Send_init(void *buf, int count, MPI_Datatype datatype, 
+                                  int dest, int tag, MPI_Comm comm, 
+                                  MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, 
+                             int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype, 
+                                 int dest, int sendtag, void *recvbuf, int recvcount,
+                                 MPI_Datatype recvtype, int source, int recvtag, 
+                                 MPI_Comm comm,  MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Sendrecv_replace(void * buf, int count, MPI_Datatype datatype, 
+                                         int dest, int sendtag, int source, int recvtag,
+                                         MPI_Comm comm, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Ssend_init(void *buf, int count, MPI_Datatype datatype, 
+                                   int dest, int tag, MPI_Comm comm, 
+                                   MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Ssend(void *buf, int count, MPI_Datatype datatype, int dest, 
+                              int tag, MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Start(MPI_Request *request);
+OMPI_DECLSPEC  int PMPI_Startall(int count, MPI_Request *array_of_requests);
+OMPI_DECLSPEC  int PMPI_Status_c2f(MPI_Status *c_status, MPI_Fint *f_status);
+OMPI_DECLSPEC  int PMPI_Status_f2c(MPI_Fint *f_status, MPI_Status *c_status);
+OMPI_DECLSPEC  int PMPI_Status_set_cancelled(MPI_Status *status, int flag);
+OMPI_DECLSPEC  int PMPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype,
+                                            int count);
+OMPI_DECLSPEC  int PMPI_Testall(int count, MPI_Request array_of_requests[], int *flag, 
+                                MPI_Status array_of_statuses[]);
+OMPI_DECLSPEC  int PMPI_Testany(int count, MPI_Request array_of_requests[], int *index, int *flag, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Test(MPI_Request *request, int *flag, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Test_cancelled(MPI_Status *status, int *flag);
+OMPI_DECLSPEC  int PMPI_Testsome(int incount, MPI_Request array_of_requests[], 
+                                 int *outcount, int array_of_indices[], 
+                                 MPI_Status array_of_statuses[]);
+OMPI_DECLSPEC  int PMPI_Topo_test(MPI_Comm comm, int *status);
+OMPI_DECLSPEC  MPI_Fint PMPI_Type_c2f(MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_Type_commit(MPI_Datatype *type);
+OMPI_DECLSPEC  int PMPI_Type_contiguous(int count, MPI_Datatype oldtype, 
+                                        MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_darray(int size, int rank, int ndims, 
+                                           int gsize_array[], int distrib_array[], 
+                                           int darg_array[], int psize_array[],
+                                           int order, MPI_Datatype oldtype, 
+                                           MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_f90_complex(int p, int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_f90_integer(int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_f90_real(int p, int r, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_hindexed(int count, int array_of_blocklengths[], 
+                                             MPI_Aint array_of_displacements[], 
+                                             MPI_Datatype oldtype, 
+                                             MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, 
+                                            MPI_Datatype oldtype, 
+                                            MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_keyval(MPI_Type_copy_attr_function *type_copy_attr_fn, 
+                                           MPI_Type_delete_attr_function *type_delete_attr_fn, 
+                                           int *type_keyval, void *extra_state);
+OMPI_DECLSPEC  int PMPI_Type_create_indexed_block(int count, int blocklength,
+                                                  int array_of_displacements[],
+                                                  MPI_Datatype oldtype,
+                                                  MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_struct(int count, int array_of_block_lengths[], 
+                                           MPI_Aint array_of_displacements[], 
+                                           MPI_Datatype array_of_types[], 
+                                           MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_subarray(int ndims, int size_array[], int subsize_array[], 
+                                             int start_array[], int order, 
+                                             MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, 
+                                            MPI_Aint extent, MPI_Datatype *newtype); 
+OMPI_DECLSPEC  int PMPI_Type_delete_attr(MPI_Datatype type, int type_keyval);
+OMPI_DECLSPEC  int PMPI_Type_dup(MPI_Datatype type, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_extent(MPI_Datatype type, MPI_Aint *extent);
+OMPI_DECLSPEC  int PMPI_Type_free(MPI_Datatype *type);
+OMPI_DECLSPEC  int PMPI_Type_free_keyval(int *type_keyval);
+OMPI_DECLSPEC  MPI_Datatype PMPI_Type_f2c(MPI_Fint datatype);
+OMPI_DECLSPEC  int PMPI_Type_get_attr(MPI_Datatype type, int type_keyval, 
+                                      void *attribute_val, int *flag);
+OMPI_DECLSPEC  int PMPI_Type_get_contents(MPI_Datatype mtype, int max_integers, 
+                                          int max_addresses, int max_datatypes, 
+                                          int array_of_integers[], 
+                                          MPI_Aint array_of_addresses[], 
+                                          MPI_Datatype array_of_datatypes[]);
+OMPI_DECLSPEC  int PMPI_Type_get_envelope(MPI_Datatype type, int *num_integers, 
+                                          int *num_addresses, int *num_datatypes, 
+                                          int *combiner);
+OMPI_DECLSPEC  int PMPI_Type_get_extent(MPI_Datatype type, MPI_Aint *lb, 
+                                        MPI_Aint *extent);
+OMPI_DECLSPEC  int PMPI_Type_get_name(MPI_Datatype type, char *type_name, 
+                                      int *resultlen);
+OMPI_DECLSPEC  int PMPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, 
+                                             MPI_Aint *true_extent);
+OMPI_DECLSPEC  int PMPI_Type_hindexed(int count, int array_of_blocklengths[], 
+                                      MPI_Aint array_of_displacements[], 
+                                      MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_hvector(int count, int blocklength, MPI_Aint stride, 
+                                     MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_indexed(int count, int array_of_blocklengths[], 
+                                     int array_of_displacements[], 
+                                     MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_lb(MPI_Datatype type, MPI_Aint *lb);
+OMPI_DECLSPEC  int PMPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
+OMPI_DECLSPEC  int PMPI_Type_set_attr(MPI_Datatype type, int type_keyval, 
+                                      void *attr_val);
+OMPI_DECLSPEC  int PMPI_Type_set_name(MPI_Datatype type, char *type_name);
+OMPI_DECLSPEC  int PMPI_Type_size(MPI_Datatype type, int *size);
+OMPI_DECLSPEC  int PMPI_Type_struct(int count, int array_of_blocklengths[], 
+                                    MPI_Aint array_of_displacements[], 
+                                    MPI_Datatype array_of_types[], 
+                                    MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Type_ub(MPI_Datatype mtype, MPI_Aint *ub);
+OMPI_DECLSPEC  int PMPI_Type_vector(int count, int blocklength, int stride, 
+                                    MPI_Datatype oldtype, MPI_Datatype *newtype);
+OMPI_DECLSPEC  int PMPI_Unpack(void *inbuf, int insize, int *position, 
+                               void *outbuf, int outcount, MPI_Datatype datatype, 
+                               MPI_Comm comm);
+OMPI_DECLSPEC  int PMPI_Unpublish_name(char *service_name, MPI_Info info, 
+                                       char *port_name);
+OMPI_DECLSPEC  int PMPI_Unpack_external (char *datarep, void *inbuf, MPI_Aint insize,
+                                         MPI_Aint *position, void *outbuf, int outcount,
+                                         MPI_Datatype datatype);
+OMPI_DECLSPEC  int PMPI_Waitall(int count, MPI_Request *array_of_requests, 
+                                MPI_Status *array_of_statuses);
+OMPI_DECLSPEC  int PMPI_Waitany(int count, MPI_Request *array_of_requests, 
+                                int *index, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Wait(MPI_Request *request, MPI_Status *status);
+OMPI_DECLSPEC  int PMPI_Waitsome(int incount, MPI_Request *array_of_requests, 
+                                 int *outcount, int *array_of_indices, 
+                                 MPI_Status *array_of_statuses);
+OMPI_DECLSPEC  MPI_Fint PMPI_Win_c2f(MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_call_errhandler(MPI_Win win, int errorcode);
+OMPI_DECLSPEC  int PMPI_Win_complete(MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_create(void *base, MPI_Aint size, int disp_unit, 
+                                   MPI_Info info, MPI_Comm comm, MPI_Win *win);
+OMPI_DECLSPEC  int PMPI_Win_create_errhandler(MPI_Win_errhandler_fn *function, 
+                                              MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_Win_create_keyval(MPI_Win_copy_attr_function *win_copy_attr_fn, 
+                                          MPI_Win_delete_attr_function *win_delete_attr_fn, 
+                                          int *win_keyval, void *extra_state);
+OMPI_DECLSPEC  int PMPI_Win_delete_attr(MPI_Win win, int win_keyval);
+OMPI_DECLSPEC  MPI_Win PMPI_Win_f2c(MPI_Fint win);
+OMPI_DECLSPEC  int PMPI_Win_fence(int assert, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_free(MPI_Win *win);
+OMPI_DECLSPEC  int PMPI_Win_free_keyval(int *win_keyval);
+OMPI_DECLSPEC  int PMPI_Win_get_attr(MPI_Win win, int win_keyval, 
+                                     void *attribute_val, int *flag);
+OMPI_DECLSPEC  int PMPI_Win_get_errhandler(MPI_Win win, MPI_Errhandler *errhandler);
+OMPI_DECLSPEC  int PMPI_Win_get_group(MPI_Win win, MPI_Group *group);
+OMPI_DECLSPEC  int PMPI_Win_get_name(MPI_Win win, char *win_name, int *resultlen);
+OMPI_DECLSPEC  int PMPI_Win_lock(int lock_type, int rank, int assert, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_post(MPI_Group group, int assert, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_set_attr(MPI_Win win, int win_keyval, void *attribute_val);
+OMPI_DECLSPEC  int PMPI_Win_set_errhandler(MPI_Win win, MPI_Errhandler errhandler);
+OMPI_DECLSPEC  int PMPI_Win_set_name(MPI_Win win, char *win_name);
+OMPI_DECLSPEC  int PMPI_Win_start(MPI_Group group, int assert, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_test(MPI_Win win, int *flag);
+OMPI_DECLSPEC  int PMPI_Win_unlock(int rank, MPI_Win win);
+OMPI_DECLSPEC  int PMPI_Win_wait(MPI_Win win);
+OMPI_DECLSPEC  double PMPI_Wtick(void);
+OMPI_DECLSPEC  double PMPI_Wtime(void);
+
+#if defined(c_plusplus) || defined(__cplusplus)
+}
+#endif
+
+/*                                                                             
+ * Conditional MPI 2 C++ bindings support.  Include if:
+ *   - The user does not explicitly request us to skip it (when a C++ compiler
+ *       is used to compile C code).
+ *   - We want C++ bindings support
+ *   - We are not building OMPI itself
+ *   - We are using a C++ compiler
+ */
+#if !defined(OMPI_SKIP_MPICXX) && OMPI_WANT_CXX_BINDINGS && !OMPI_BUILDING
+#if defined(__cplusplus) || defined(c_plusplus) 
+#include "openmpi/ompi/mpi/cxx/mpicxx.h"
+#endif
+#endif
+
+#if !OMPI_PROVIDE_MPI_FILE_INTERFACE && !OMPI_BUILDING
+/* ROMIO requires MPI implementations to set this to 1 if they provide
+   MPI_OFFSET.  We need to provide it because its used throughout the
+   DDT engine */
+#define HAVE_MPI_OFFSET 1
+#endif
+
+#endif /* OMPI_MPI_H */
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm.h	(revision 97)
@@ -0,0 +1,462 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Comm_Null {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Comm_Null;
+#endif
+public:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction
+  inline Comm_Null() { }
+  // copy
+  inline Comm_Null(const Comm_Null& data) : pmpi_comm(data.pmpi_comm) { }
+  // inter-language operability  
+  inline Comm_Null(MPI_Comm data) : pmpi_comm(data) { }
+
+  inline Comm_Null(const PMPI::Comm_Null& data) : pmpi_comm(data) { }
+
+  // destruction
+  virtual inline ~Comm_Null() { }
+
+  inline Comm_Null& operator=(const Comm_Null& data) {
+    pmpi_comm = data.pmpi_comm; 
+    return *this;
+  }
+
+  // comparison
+  inline bool operator==(const Comm_Null& data) const {
+    return (bool) (pmpi_comm == data.pmpi_comm); }
+
+  inline bool operator!=(const Comm_Null& data) const {
+    return (bool) (pmpi_comm != data.pmpi_comm);}
+
+  // inter-language operability (conversion operators)
+  inline operator MPI_Comm() const { return pmpi_comm; }
+  //  inline operator MPI_Comm*() /*const JGS*/ { return pmpi_comm; }
+  inline operator const PMPI::Comm_Null&() const { return pmpi_comm; }
+
+#else
+
+  // construction
+  inline Comm_Null() : mpi_comm(MPI_COMM_NULL) { }
+  // copy
+  inline Comm_Null(const Comm_Null& data) : mpi_comm(data.mpi_comm) { }
+  // inter-language operability  
+  inline Comm_Null(MPI_Comm data) : mpi_comm(data) { }
+
+  // destruction
+  virtual inline ~Comm_Null() { }
+
+ // comparison
+  // JGS make sure this is right (in other classes too)
+  inline bool operator==(const Comm_Null& data) const {
+    return (bool) (mpi_comm == data.mpi_comm); }
+
+  inline bool operator!=(const Comm_Null& data) const {
+    return (bool) !(*this == data);}
+
+  // inter-language operability (conversion operators)
+  inline operator MPI_Comm() const { return mpi_comm; }
+
+#endif
+
+  
+protected:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Comm_Null pmpi_comm;
+#else
+  MPI_Comm mpi_comm;
+#endif
+  
+
+};
+
+
+class Comm : public Comm_Null {
+public:
+
+  typedef void Errhandler_fn(Comm&, int*, ...);
+  typedef int Copy_attr_function(const Comm& oldcomm, int comm_keyval,
+				 void* extra_state, void* attribute_val_in,
+				 void* attribute_val_out, 
+				 bool& flag);
+  typedef int Delete_attr_function(Comm& comm, int comm_keyval, 
+				   void* attribute_val,
+				   void* extra_state);
+#if !0 /* OMPI_ENABLE_MPI_PROFILING */
+#define _MPI2CPP_ERRHANDLERFN_ Errhandler_fn
+#define _MPI2CPP_COPYATTRFN_ Copy_attr_function
+#define _MPI2CPP_DELETEATTRFN_ Delete_attr_function
+#endif
+
+  // construction
+  Comm();
+
+  // copy
+  Comm(const Comm_Null& data);
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  Comm(const Comm& data) : 
+    Comm_Null(data),
+    pmpi_comm((const PMPI::Comm&) data) { }
+
+  // inter-language operability
+  Comm(MPI_Comm data) : Comm_Null(data), pmpi_comm(data) { }
+
+  Comm(const PMPI::Comm& data) :
+    Comm_Null((const PMPI::Comm_Null&)data),
+    pmpi_comm(data) { }
+
+  operator const PMPI::Comm&() const { return pmpi_comm; }
+
+  // assignment
+  Comm& operator=(const Comm& data) {
+    this->Comm_Null::operator=(data);
+    pmpi_comm = data.pmpi_comm; 
+    return *this;
+  }
+  Comm& operator=(const Comm_Null& data) {
+    this->Comm_Null::operator=(data);
+    MPI_Comm tmp = data;
+    pmpi_comm = tmp; 
+    return *this;
+  }
+  // inter-language operability
+  Comm& operator=(const MPI_Comm& data) {
+    this->Comm_Null::operator=(data);
+    pmpi_comm = data;
+    return *this;
+  }
+
+#else
+  Comm(const Comm& data) : Comm_Null(data.mpi_comm) { }
+  // inter-language operability
+  Comm(MPI_Comm data) : Comm_Null(data) { }
+#endif
+
+
+  //
+  // Point-to-Point
+  //
+
+  virtual void Send(const void *buf, int count, 
+		    const Datatype & datatype, int dest, int tag) const;
+
+  virtual void Recv(void *buf, int count, const Datatype & datatype,
+		    int source, int tag, Status & status) const;
+
+
+  virtual void Recv(void *buf, int count, const Datatype & datatype,
+		    int source, int tag) const;
+  
+  virtual void Bsend(const void *buf, int count,
+		     const Datatype & datatype, int dest, int tag) const;
+  
+  virtual void Ssend(const void *buf, int count, 
+		     const Datatype & datatype, int dest, int tag) const ;
+
+  virtual void Rsend(const void *buf, int count,
+		     const Datatype & datatype, int dest, int tag) const;
+  
+  virtual Request Isend(const void *buf, int count,
+			const Datatype & datatype, int dest, int tag) const;
+  
+  virtual Request Ibsend(const void *buf, int count, const
+			 Datatype & datatype, int dest, int tag) const;
+  
+  virtual Request Issend(const void *buf, int count,
+			 const Datatype & datatype, int dest, int tag) const;
+  
+  virtual Request Irsend(const void *buf, int count,
+			 const Datatype & datatype, int dest, int tag) const;
+
+  virtual Request Irecv(void *buf, int count,
+			const Datatype & datatype, int source, int tag) const;
+
+  virtual bool Iprobe(int source, int tag, Status & status) const;
+
+  virtual bool Iprobe(int source, int tag) const;
+
+  virtual void Probe(int source, int tag, Status & status) const;
+  
+  virtual void Probe(int source, int tag) const;
+  
+  virtual Prequest Send_init(const void *buf, int count,
+			     const Datatype & datatype, int dest, 
+			     int tag) const;
+  
+  virtual Prequest Bsend_init(const void *buf, int count,
+			      const Datatype & datatype, int dest, 
+			      int tag) const;
+  
+  virtual Prequest Ssend_init(const void *buf, int count,
+			      const Datatype & datatype, int dest, 
+			      int tag) const;
+  
+  virtual Prequest Rsend_init(const void *buf, int count,
+			      const Datatype & datatype, int dest, 
+			      int tag) const;
+  
+  virtual Prequest Recv_init(void *buf, int count,
+			     const Datatype & datatype, int source, 
+			     int tag) const;
+  
+  virtual void Sendrecv(const void *sendbuf, int sendcount,
+			const Datatype & sendtype, int dest, int sendtag, 
+			void *recvbuf, int recvcount, 
+			const Datatype & recvtype, int source,
+			int recvtag, Status & status) const;
+  
+  virtual void Sendrecv(const void *sendbuf, int sendcount,
+			const Datatype & sendtype, int dest, int sendtag, 
+			void *recvbuf, int recvcount, 
+			const Datatype & recvtype, int source,
+			int recvtag) const;
+
+  virtual void Sendrecv_replace(void *buf, int count,
+				const Datatype & datatype, int dest, 
+				int sendtag, int source,
+				int recvtag, Status & status) const;
+
+  virtual void Sendrecv_replace(void *buf, int count,
+				const Datatype & datatype, int dest, 
+				int sendtag, int source,
+				int recvtag) const;
+  
+  //
+  // Groups, Contexts, and Communicators
+  //
+
+  virtual Group Get_group() const;
+  
+  virtual int Get_size() const;
+
+  virtual int Get_rank() const;
+  
+  static int Compare(const Comm & comm1, const Comm & comm2);
+  
+  virtual Comm& Clone() const = 0;
+
+  virtual void Free(void);
+  
+  virtual bool Is_inter() const;
+
+
+  //
+  // Collective Communication
+  //
+  // Up in Comm because as of MPI-2, they are common to intracomm and
+  // intercomm -- with the exception of Scan and Exscan, which are not
+  // defined on intercomms.
+  //
+
+  virtual void
+  Barrier() const;
+
+  virtual void
+  Bcast(void *buffer, int count, 
+	const Datatype& datatype, int root) const;
+  
+  virtual void
+  Gather(const void *sendbuf, int sendcount, 
+	 const Datatype & sendtype, 
+	 void *recvbuf, int recvcount, 
+	 const Datatype & recvtype, int root) const;
+  
+  virtual void
+  Gatherv(const void *sendbuf, int sendcount, 
+	  const Datatype & sendtype, void *recvbuf, 
+	  const int recvcounts[], const int displs[], 
+	  const Datatype & recvtype, int root) const;
+  
+  virtual void
+  Scatter(const void *sendbuf, int sendcount, 
+	  const Datatype & sendtype, 
+	  void *recvbuf, int recvcount, 
+	  const Datatype & recvtype, int root) const;
+  
+  virtual void
+  Scatterv(const void *sendbuf, const int sendcounts[], 
+	   const int displs[], const Datatype & sendtype,
+	   void *recvbuf, int recvcount, 
+	   const Datatype & recvtype, int root) const;
+  
+  virtual void
+  Allgather(const void *sendbuf, int sendcount, 
+	    const Datatype & sendtype, void *recvbuf, 
+	    int recvcount, const Datatype & recvtype) const;
+  
+  virtual void
+  Allgatherv(const void *sendbuf, int sendcount, 
+	     const Datatype & sendtype, void *recvbuf, 
+	     const int recvcounts[], const int displs[],
+	     const Datatype & recvtype) const;
+  
+  virtual void
+  Alltoall(const void *sendbuf, int sendcount, 
+	   const Datatype & sendtype, void *recvbuf, 
+	   int recvcount, const Datatype & recvtype) const;
+  
+  virtual void
+  Alltoallv(const void *sendbuf, const int sendcounts[], 
+	    const int sdispls[], const Datatype & sendtype, 
+	    void *recvbuf, const int recvcounts[], 
+	    const int rdispls[], const Datatype & recvtype) const;
+  
+  virtual void
+  Alltoallw(const void *sendbuf, const int sendcounts[],
+            const int sdispls[], const Datatype sendtypes[],
+            void *recvbuf, const int recvcounts[],
+            const int rdispls[], const Datatype recvtypes[]) const;
+  
+  virtual void
+  Reduce(const void *sendbuf, void *recvbuf, int count, 
+	 const Datatype & datatype, const Op & op, 
+	 int root) const;
+  
+  
+  virtual void
+  Allreduce(const void *sendbuf, void *recvbuf, int count,
+	    const Datatype & datatype, const Op & op) const;
+  
+  virtual void
+  Reduce_scatter(const void *sendbuf, void *recvbuf, 
+		 int recvcounts[], 
+		 const Datatype & datatype, 
+		 const Op & op) const;
+
+  // 
+  // Process Creation
+  //
+
+  virtual void Disconnect();
+
+  static Intercomm Get_parent();
+  
+  static Intercomm Join(const int fd);
+
+  //
+  // External Interfaces
+  //
+  
+  virtual void Get_name(char * comm_name, int& resultlen) const;
+
+  virtual void Set_name(const char* comm_name);
+  
+  //
+  // Process Topologies
+  //
+  
+  virtual int Get_topology() const;
+  
+  //
+  // Environmental Inquiry
+  //
+  
+  virtual void Abort(int errorcode);
+
+  //
+  // Errhandler
+  //
+
+  static Errhandler Create_errhandler(Comm::Errhandler_fn* function);
+
+  virtual void Set_errhandler(const Errhandler& errhandler) const;
+
+  virtual Errhandler Get_errhandler() const;
+
+  void Call_errhandler(int errorcode) const;
+
+  //
+  // Keys and Attributes
+  //
+
+  // Need 4 overloaded versions of this function because per the
+  // MPI-2 spec, you can mix-n-match the C predefined functions with
+  // C++ functions.
+  static int Create_keyval(Copy_attr_function* comm_copy_attr_fn,
+                           Delete_attr_function* comm_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
+                           MPI_Comm_delete_attr_function* comm_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(Copy_attr_function* comm_copy_attr_fn,
+                           MPI_Comm_delete_attr_function* comm_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
+                           Delete_attr_function* comm_delete_attr_fn,
+                           void* extra_state);
+
+protected:  
+  static int do_create_keyval(MPI_Comm_copy_attr_function* c_copy_fn,
+                              MPI_Comm_delete_attr_function* c_delete_fn,
+                              Copy_attr_function* cxx_copy_fn,
+                              Delete_attr_function* cxx_delete_fn,
+                              void* extra_state, int &keyval);
+
+public:
+
+  static void Free_keyval(int& comm_keyval);
+
+  virtual void Set_attr(int comm_keyval, const void* attribute_val) const;
+
+  virtual bool Get_attr(int comm_keyval, void* attribute_val) const;
+  
+  virtual void Delete_attr(int comm_keyval);
+
+  static int NULL_COPY_FN(const Comm& oldcomm, int comm_keyval,
+			  void* extra_state, void* attribute_val_in,
+			  void* attribute_val_out, bool& flag);
+  
+  static int DUP_FN(const Comm& oldcomm, int comm_keyval,
+		    void* extra_state, void* attribute_val_in,
+		    void* attribute_val_out, bool& flag);
+  
+  static int NULL_DELETE_FN(Comm& comm, int comm_keyval, void* attribute_val,
+			    void* extra_state);
+
+
+private:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Comm pmpi_comm;
+#endif
+
+#if ! 0 /* OMPI_ENABLE_MPI_PROFILING */
+public:
+
+    // Data that is passed through keyval create when C++ callback
+    // functions are used
+    struct keyval_intercept_data_t {
+        MPI_Comm_copy_attr_function *c_copy_fn;
+        MPI_Comm_delete_attr_function *c_delete_fn;
+        Copy_attr_function* cxx_copy_fn;
+        Delete_attr_function* cxx_delete_fn;
+        void *extra_state;
+    };
+
+    // Protect the global list from multiple thread access
+    static opal_mutex_t cxx_extra_states_lock;
+#endif
+
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/comm_inln.h	(revision 97)
@@ -0,0 +1,676 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2007-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+ 
+//
+// Point-to-Point
+//
+
+inline void
+MPI::Comm::Send(const void *buf, int count, 
+		const MPI::Datatype & datatype, int dest, int tag) const
+{
+  (void)MPI_Send(const_cast<void *>(buf), count, datatype, dest, tag, mpi_comm);
+}
+
+inline void
+MPI::Comm::Recv(void *buf, int count, const MPI::Datatype & datatype,
+		int source, int tag, MPI::Status & status) const
+{
+  (void)MPI_Recv(buf, count, datatype, source, tag, mpi_comm, &status.mpi_status);
+}
+
+inline void
+MPI::Comm::Recv(void *buf, int count, const MPI::Datatype & datatype,
+				    int source, int tag) const
+{
+  (void)MPI_Recv(buf, count, datatype, source, 
+		 tag, mpi_comm, MPI_STATUS_IGNORE);
+}
+
+inline void
+MPI::Comm::Bsend(const void *buf, int count,
+		 const MPI::Datatype & datatype, int dest, int tag) const
+{
+  (void)MPI_Bsend(const_cast<void *>(buf), count, datatype, 
+		  dest, tag, mpi_comm);
+}
+
+inline void
+MPI::Comm::Ssend(const void *buf, int count, 
+		 const MPI::Datatype & datatype, int dest, int tag) const 
+{
+  (void)MPI_Ssend(const_cast<void *>(buf), count,  datatype, dest, 
+		  tag, mpi_comm);
+}
+
+inline void
+MPI::Comm::Rsend(const void *buf, int count,
+		 const MPI::Datatype & datatype, int dest, int tag) const
+{
+  (void)MPI_Rsend(const_cast<void *>(buf), count, datatype, 
+		  dest, tag, mpi_comm);
+}
+
+inline MPI::Request
+MPI::Comm::Isend(const void *buf, int count,
+		 const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request;
+  (void)MPI_Isend(const_cast<void *>(buf), count, datatype, 
+		  dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Request
+MPI::Comm::Ibsend(const void *buf, int count,
+		  const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request;    
+  (void)MPI_Ibsend(const_cast<void *>(buf), count, datatype, 
+		   dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Request
+MPI::Comm::Issend(const void *buf, int count,
+		  const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request;        
+  (void)MPI_Issend(const_cast<void *>(buf), count, datatype,
+		   dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Request
+MPI::Comm::Irsend(const void *buf, int count,
+		  const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request;
+  (void)MPI_Irsend(const_cast<void *>(buf), count, datatype, 
+		   dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Request
+MPI::Comm::Irecv(void *buf, int count,
+		 const MPI::Datatype & datatype, int source, int tag) const
+{
+  MPI_Request request;
+  (void)MPI_Irecv(buf, count, datatype, source, 
+		  tag, mpi_comm, &request);
+  return request;
+}
+
+
+inline bool
+MPI::Comm::Iprobe(int source, int tag, MPI::Status & status) const
+{
+  int t;
+  (void)MPI_Iprobe(source, tag, mpi_comm, &t, &status.mpi_status);
+  return OPAL_INT_TO_BOOL(t);
+}
+  
+inline bool
+MPI::Comm::Iprobe(int source, int tag) const
+{
+  int t;
+  (void)MPI_Iprobe(source, tag, mpi_comm, &t, MPI_STATUS_IGNORE);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+inline void
+MPI::Comm::Probe(int source, int tag, MPI::Status & status) const
+{
+  (void)MPI_Probe(source, tag, mpi_comm, &status.mpi_status);
+}
+
+inline void
+MPI::Comm::Probe(int source, int tag) const
+{
+  (void)MPI_Probe(source, tag, mpi_comm, MPI_STATUS_IGNORE);
+}
+
+inline MPI::Prequest
+MPI::Comm::Send_init(const void *buf, int count,
+		     const MPI::Datatype & datatype, int dest, int tag) const
+{ 
+  MPI_Request request;
+  (void)MPI_Send_init(const_cast<void *>(buf), count, datatype, 
+		      dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Prequest
+MPI::Comm::Bsend_init(const void *buf, int count,
+		      const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request; 
+  (void)MPI_Bsend_init(const_cast<void *>(buf), count, datatype, 
+		       dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Prequest
+MPI::Comm::Ssend_init(const void *buf, int count,
+		      const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request; 
+  (void)MPI_Ssend_init(const_cast<void *>(buf), count, datatype,
+		       dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Prequest
+MPI::Comm::Rsend_init(const void *buf, int count,
+		      const MPI::Datatype & datatype, int dest, int tag) const
+{
+  MPI_Request request; 
+  (void)MPI_Rsend_init(const_cast<void *>(buf), count,  datatype,
+		       dest, tag, mpi_comm, &request);
+  return request;
+}
+
+inline MPI::Prequest
+MPI::Comm::Recv_init(void *buf, int count,
+		     const MPI::Datatype & datatype, int source, int tag) const
+{
+  MPI_Request request; 
+  (void)MPI_Recv_init(buf, count, datatype, source, 
+		      tag, mpi_comm, &request);
+  return request;
+}
+
+inline void
+MPI::Comm::Sendrecv(const void *sendbuf, int sendcount,
+		    const MPI::Datatype & sendtype, int dest, int sendtag, 
+		    void *recvbuf, int recvcount, 
+		    const MPI::Datatype & recvtype, int source,
+		    int recvtag, MPI::Status & status) const
+{
+  (void)MPI_Sendrecv(const_cast<void *>(sendbuf), sendcount, 
+		     sendtype,
+		     dest, sendtag, recvbuf, recvcount, 
+		     recvtype, 
+		     source, recvtag, mpi_comm, &status.mpi_status);
+}
+
+inline void
+MPI::Comm::Sendrecv(const void *sendbuf, int sendcount,
+		    const MPI::Datatype & sendtype, int dest, int sendtag, 
+		    void *recvbuf, int recvcount, 
+		    const MPI::Datatype & recvtype, int source,
+		    int recvtag) const
+{
+  (void)MPI_Sendrecv(const_cast<void *>(sendbuf), sendcount, 
+		     sendtype,
+		     dest, sendtag, recvbuf, recvcount, 
+		     recvtype, 
+		     source, recvtag, mpi_comm, MPI_STATUS_IGNORE);
+}
+
+inline void
+MPI::Comm::Sendrecv_replace(void *buf, int count,
+			    const MPI::Datatype & datatype, int dest, 
+			    int sendtag, int source,
+			    int recvtag, MPI::Status & status) const 
+{
+  (void)MPI_Sendrecv_replace(buf, count, datatype, dest,
+			     sendtag, source, recvtag, mpi_comm,
+			     &status.mpi_status);
+}
+
+inline void
+MPI::Comm::Sendrecv_replace(void *buf, int count,
+			    const MPI::Datatype & datatype, int dest, 
+			    int sendtag, int source,
+			    int recvtag) const 
+{
+  (void)MPI_Sendrecv_replace(buf, count, datatype, dest,
+			     sendtag, source, recvtag, mpi_comm,
+			     MPI_STATUS_IGNORE);
+}
+
+//
+// Groups, Contexts, and Communicators
+//
+
+inline MPI::Group
+MPI::Comm::Get_group() const 
+{
+  MPI_Group group;
+  (void)MPI_Comm_group(mpi_comm, &group);
+  return group;
+}
+  
+inline int
+MPI::Comm::Get_size() const 
+{
+  int size;
+  (void)MPI_Comm_size (mpi_comm, &size);
+  return size;
+}
+  
+inline int
+MPI::Comm::Get_rank() const 
+{
+  int rank;
+  (void)MPI_Comm_rank (mpi_comm, &rank);
+  return rank;
+}
+  
+inline int
+MPI::Comm::Compare(const MPI::Comm & comm1,
+		   const MPI::Comm & comm2)
+{
+  int result;
+  (void)MPI_Comm_compare(comm1, comm2, &result);
+  return result;
+}
+
+inline void
+MPI::Comm::Free(void) 
+{
+    (void)MPI_Comm_free(&mpi_comm);
+}
+
+inline bool
+MPI::Comm::Is_inter() const
+{
+  int t;
+  (void)MPI_Comm_test_inter(mpi_comm, &t);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+
+//
+// Collective Communication
+//
+
+inline void
+MPI::Comm::Barrier() const
+{
+    (void)MPI_Barrier(mpi_comm);
+}
+
+inline void
+MPI::Comm::Bcast(void *buffer, int count, 
+                 const MPI::Datatype& datatype, int root) const
+{ 
+    (void)MPI_Bcast(buffer, count, datatype, root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Gather(const void *sendbuf, int sendcount, 
+                  const MPI::Datatype & sendtype, 
+                  void *recvbuf, int recvcount, 
+                  const MPI::Datatype & recvtype, int root) const
+{
+    (void)MPI_Gather(const_cast<void *>(sendbuf), sendcount, sendtype,
+                     recvbuf, recvcount, recvtype, root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Gatherv(const void *sendbuf, int sendcount, 
+                   const MPI::Datatype & sendtype, void *recvbuf, 
+                   const int recvcounts[], const int displs[], 
+                   const MPI::Datatype & recvtype, int root) const
+{
+    (void)MPI_Gatherv(const_cast<void *>(sendbuf), sendcount,  sendtype,
+                      recvbuf, const_cast<int *>(recvcounts),
+                      const_cast<int *>(displs), 
+                      recvtype, root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Scatter(const void *sendbuf, int sendcount, 
+                   const MPI::Datatype & sendtype, 
+                   void *recvbuf, int recvcount, 
+                   const MPI::Datatype & recvtype, int root) const
+{ 
+    (void)MPI_Scatter(const_cast<void *>(sendbuf), sendcount, sendtype,
+                      recvbuf, recvcount, recvtype, root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Scatterv(const void *sendbuf, const int sendcounts[], 
+                    const int displs[], const MPI::Datatype & sendtype,
+                    void *recvbuf, int recvcount, 
+                    const MPI::Datatype & recvtype, int root) const
+{
+    (void)MPI_Scatterv(const_cast<void *>(sendbuf),
+                       const_cast<int *>(sendcounts), 
+                       const_cast<int *>(displs), sendtype, 
+                       recvbuf, recvcount, recvtype, 
+                       root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Allgather(const void *sendbuf, int sendcount, 
+                     const MPI::Datatype & sendtype, void *recvbuf, 
+                     int recvcount, const MPI::Datatype & recvtype) const 
+{
+    (void)MPI_Allgather(const_cast<void *>(sendbuf), sendcount, 
+                        sendtype, recvbuf, recvcount,
+                        recvtype, mpi_comm);
+}
+
+inline void
+MPI::Comm::Allgatherv(const void *sendbuf, int sendcount, 
+                      const MPI::Datatype & sendtype, void *recvbuf, 
+                      const int recvcounts[], const int displs[],
+                      const MPI::Datatype & recvtype) const
+{
+    (void)MPI_Allgatherv(const_cast<void *>(sendbuf), sendcount, 
+                         sendtype, recvbuf, 
+                         const_cast<int *>(recvcounts),
+                         const_cast<int *>(displs), 
+                         recvtype, mpi_comm);
+}
+
+inline void
+MPI::Comm::Alltoall(const void *sendbuf, int sendcount, 
+                    const MPI::Datatype & sendtype, void *recvbuf, 
+                    int recvcount, const MPI::Datatype & recvtype) const
+{
+    (void)MPI_Alltoall(const_cast<void *>(sendbuf), sendcount,
+                       sendtype, recvbuf, recvcount,
+                       recvtype, mpi_comm);
+}
+
+inline void
+MPI::Comm::Alltoallv(const void *sendbuf, const int sendcounts[], 
+                     const int sdispls[], const MPI::Datatype & sendtype, 
+                     void *recvbuf, const int recvcounts[], 
+                     const int rdispls[], 
+                     const MPI::Datatype & recvtype) const 
+{
+    (void)MPI_Alltoallv(const_cast<void *>(sendbuf), 
+                        const_cast<int *>(sendcounts), 
+			const_cast<int *>(sdispls), sendtype, recvbuf, 
+			const_cast<int *>(recvcounts), 
+                        const_cast<int *>(rdispls), 
+			recvtype,mpi_comm);
+}
+
+inline void
+MPI::Comm::Alltoallw(const void *sendbuf, const int sendcounts[],
+                     const int sdispls[], const MPI::Datatype sendtypes[],
+                     void *recvbuf, const int recvcounts[],
+                     const int rdispls[], 
+                     const MPI::Datatype recvtypes[]) const
+{
+    const int comm_size = Get_size();
+    MPI_Datatype *const data_type_tbl = new MPI_Datatype [2*comm_size];
+    
+    // This must be done because MPI::Datatype arrays cannot be
+    // converted directly into MPI_Datatype arrays.  
+    for (int i_rank=0; i_rank < comm_size; i_rank++) {
+        data_type_tbl[i_rank] = sendtypes[i_rank];
+        data_type_tbl[i_rank + comm_size] = recvtypes[i_rank];
+    }
+    
+    (void)MPI_Alltoallw(const_cast<void *>(sendbuf), 
+                        const_cast<int *>(sendcounts),
+                        const_cast<int *>(sdispls),
+                        data_type_tbl, recvbuf,
+                        const_cast<int *>(recvcounts), 
+                        const_cast<int *>(rdispls),
+                        &data_type_tbl[comm_size], mpi_comm);
+    
+    delete[] data_type_tbl;
+}
+
+inline void
+MPI::Comm::Reduce(const void *sendbuf, void *recvbuf, int count, 
+                  const MPI::Datatype & datatype, const MPI::Op& op, 
+                  int root) const
+{
+    (void)MPI_Reduce(const_cast<void *>(sendbuf), recvbuf, count, datatype, op, root, mpi_comm);
+}
+
+inline void
+MPI::Comm::Allreduce(const void *sendbuf, void *recvbuf, int count,
+                     const MPI::Datatype & datatype, const MPI::Op& op) const
+{
+    (void)MPI_Allreduce (const_cast<void *>(sendbuf), recvbuf, count, datatype,  op, mpi_comm);
+}
+
+inline void
+MPI::Comm::Reduce_scatter(const void *sendbuf, void *recvbuf, 
+                          int recvcounts[], 
+                          const MPI::Datatype & datatype, 
+                          const MPI::Op& op) const
+{
+    (void)MPI_Reduce_scatter(const_cast<void *>(sendbuf), recvbuf, recvcounts,
+                             datatype, op, mpi_comm);
+}
+
+//
+// Process Creation and Managemnt
+//
+
+inline void
+MPI::Comm::Disconnect()
+{
+  (void) MPI_Comm_disconnect(&mpi_comm);
+}
+
+
+inline MPI::Intercomm
+MPI::Comm::Get_parent()
+{
+  MPI_Comm parent;
+  MPI_Comm_get_parent(&parent);
+  return parent;
+}
+
+
+inline MPI::Intercomm
+MPI::Comm::Join(const int fd) 
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_join((int) fd, &newcomm);
+  return newcomm;
+}
+
+//
+// External Interfaces
+//
+
+inline void
+MPI::Comm::Get_name(char* comm_name, int& resultlen) const
+{
+  (void) MPI_Comm_get_name(mpi_comm, comm_name, &resultlen);
+}
+
+inline void
+MPI::Comm::Set_name(const char* comm_name) 
+{
+  (void) MPI_Comm_set_name(mpi_comm, const_cast<char *>(comm_name));
+}
+  
+//
+//Process Topologies
+//
+
+inline int
+MPI::Comm::Get_topology() const 
+{
+  int status;
+  (void)MPI_Topo_test(mpi_comm, &status);
+  return status;
+}
+  
+//
+// Environmental Inquiry
+//
+
+inline void
+MPI::Comm::Abort(int errorcode) 
+{
+  (void)MPI_Abort(mpi_comm, errorcode);
+}
+
+//
+//  These C++ bindings are for MPI-2.
+//  The MPI-1.2 functions called below are all
+//  going to be deprecated and replaced in MPI-2.
+//
+
+inline MPI::Errhandler
+MPI::Comm::Get_errhandler() const
+{
+    MPI_Errhandler errhandler;
+    MPI_Comm_get_errhandler(mpi_comm, &errhandler);
+    return errhandler;
+}
+
+inline void
+MPI::Comm::Set_errhandler(const MPI::Errhandler& errhandler) const
+{
+    (void)MPI_Comm_set_errhandler(mpi_comm, errhandler);
+}
+
+inline void 
+MPI::Comm::Call_errhandler(int errorcode) const
+{
+  (void) MPI_Comm_call_errhandler(mpi_comm, errorcode);
+}
+
+// 1) original Create_keyval that takes the first 2 arguments as C++
+//    functions
+inline int
+MPI::Comm::Create_keyval(MPI::Comm::Copy_attr_function* comm_copy_attr_fn,
+                         MPI::Comm::Delete_attr_function* comm_delete_attr_fn, 
+                         void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, NULL, 
+                           comm_copy_attr_fn, comm_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 2) overload Create_keyval to take the first 2 arguments as C
+//    functions
+inline int
+MPI::Comm::Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
+                         MPI_Comm_delete_attr_function* comm_delete_attr_fn, 
+                         void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(comm_copy_attr_fn, comm_delete_attr_fn,
+                           NULL, NULL,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 3) overload Create_keyval to take the first 2 arguments as C++ & C
+//    functions
+inline int
+MPI::Comm::Create_keyval(MPI::Comm::Copy_attr_function* comm_copy_attr_fn,
+                         MPI_Comm_delete_attr_function* comm_delete_attr_fn,
+                         void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, comm_delete_attr_fn,
+                           comm_copy_attr_fn, NULL,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 4) overload Create_keyval to take the first 2 arguments as C & C++
+//    functions
+inline int
+MPI::Comm::Create_keyval(MPI_Comm_copy_attr_function* comm_copy_attr_fn,
+                         MPI::Comm::Delete_attr_function* comm_delete_attr_fn,
+                         void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(comm_copy_attr_fn, NULL,
+                           NULL, comm_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+inline void
+MPI::Comm::Free_keyval(int& comm_keyval)
+{
+    (void) MPI_Keyval_free(&comm_keyval);
+}
+
+inline void
+MPI::Comm::Set_attr(int comm_keyval, const void* attribute_val) const
+{
+    (void)MPI_Attr_put(mpi_comm, comm_keyval, const_cast<void*>(attribute_val));
+}
+
+inline bool
+MPI::Comm::Get_attr(int comm_keyval, void* attribute_val) const
+{
+  int flag;
+  (void)MPI_Attr_get(mpi_comm, comm_keyval, attribute_val, &flag);
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline void
+MPI::Comm::Delete_attr(int comm_keyval)
+{
+  (void)MPI_Attr_delete(mpi_comm, comm_keyval);
+}
+
+inline int
+MPI::Comm::NULL_COPY_FN(const MPI::Comm& oldcomm, int comm_keyval,
+			       void* extra_state, void* attribute_val_in,
+			       void* attribute_val_out, bool& flag)
+{
+    flag = false;
+    return MPI_SUCCESS;
+}
+
+inline int
+MPI::Comm::DUP_FN(const MPI::Comm& oldcomm, int comm_keyval,
+			 void* extra_state, void* attribute_val_in,
+			 void* attribute_val_out, bool& flag)
+{
+#if OMPI_SIZEOF_BOOL != OMPI_SIZEOF_INT
+  int f = (int)flag;
+  int ret;
+  ret = MPI_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in,
+		   attribute_val_out, &f);
+  flag = OPAL_INT_TO_BOOL(f);
+  return ret;
+#else
+  return MPI_DUP_FN(oldcomm, comm_keyval, extra_state, attribute_val_in,
+		    attribute_val_out, (int*)&flag);
+#endif
+}
+
+inline int
+MPI::Comm::NULL_DELETE_FN(MPI::Comm& comm, int comm_keyval, void* attribute_val,
+				 void* extra_state)
+{
+    return MPI_SUCCESS;
+}
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/constants.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/constants.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/constants.h	(revision 97)
@@ -0,0 +1,271 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2008-2009 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+// return  codes
+static const int SUCCESS = MPI_SUCCESS;
+static const int ERR_BUFFER = MPI_ERR_BUFFER;
+static const int ERR_COUNT = MPI_ERR_COUNT;
+static const int ERR_TYPE = MPI_ERR_TYPE;
+static const int ERR_TAG  = MPI_ERR_TAG ;
+static const int ERR_COMM = MPI_ERR_COMM;
+static const int ERR_RANK = MPI_ERR_RANK;
+static const int ERR_REQUEST = MPI_ERR_REQUEST;
+static const int ERR_ROOT = MPI_ERR_ROOT;
+static const int ERR_GROUP = MPI_ERR_GROUP;
+static const int ERR_OP = MPI_ERR_OP;
+static const int ERR_TOPOLOGY = MPI_ERR_TOPOLOGY;
+static const int ERR_DIMS = MPI_ERR_DIMS;
+static const int ERR_ARG = MPI_ERR_ARG;
+static const int ERR_UNKNOWN = MPI_ERR_UNKNOWN;
+static const int ERR_TRUNCATE = MPI_ERR_TRUNCATE;
+static const int ERR_OTHER = MPI_ERR_OTHER;
+static const int ERR_INTERN = MPI_ERR_INTERN;
+static const int ERR_PENDING = MPI_ERR_PENDING;
+static const int ERR_IN_STATUS = MPI_ERR_IN_STATUS;
+static const int ERR_LASTCODE = MPI_ERR_LASTCODE;
+
+static const int ERR_BASE = MPI_ERR_BASE;
+static const int ERR_INFO_VALUE = MPI_ERR_INFO_VALUE;
+static const int ERR_INFO_KEY = MPI_ERR_INFO_KEY;
+static const int ERR_INFO_NOKEY = MPI_ERR_INFO_NOKEY;
+static const int ERR_KEYVAL = MPI_ERR_KEYVAL;
+static const int ERR_NAME = MPI_ERR_NAME;
+static const int ERR_NO_MEM = MPI_ERR_NO_MEM;
+static const int ERR_SERVICE = MPI_ERR_SERVICE;
+static const int ERR_SPAWN = MPI_ERR_SPAWN;
+static const int ERR_WIN = MPI_ERR_WIN;
+
+
+// assorted constants
+OMPI_DECLSPEC extern void* const BOTTOM;
+OMPI_DECLSPEC extern void* const IN_PLACE;
+static const int PROC_NULL = MPI_PROC_NULL;
+static const int ANY_SOURCE = MPI_ANY_SOURCE;
+static const int ROOT = MPI_ROOT;
+static const int ANY_TAG = MPI_ANY_TAG;
+static const int UNDEFINED = MPI_UNDEFINED;
+static const int BSEND_OVERHEAD = MPI_BSEND_OVERHEAD;
+static const int KEYVAL_INVALID = MPI_KEYVAL_INVALID;
+static const int ORDER_C = MPI_ORDER_C;
+static const int ORDER_FORTRAN = MPI_ORDER_FORTRAN;
+static const int DISTRIBUTE_BLOCK = MPI_DISTRIBUTE_BLOCK;
+static const int DISTRIBUTE_CYCLIC = MPI_DISTRIBUTE_CYCLIC;
+static const int DISTRIBUTE_NONE = MPI_DISTRIBUTE_NONE;
+static const int DISTRIBUTE_DFLT_DARG = MPI_DISTRIBUTE_DFLT_DARG;
+
+// error-handling specifiers
+OMPI_DECLSPEC extern const Errhandler  ERRORS_ARE_FATAL;
+OMPI_DECLSPEC extern const Errhandler  ERRORS_RETURN;
+OMPI_DECLSPEC extern const Errhandler  ERRORS_THROW_EXCEPTIONS;
+
+// typeclass definitions for MPI_Type_match_size
+static const int TYPECLASS_INTEGER = MPI_TYPECLASS_INTEGER;
+static const int TYPECLASS_REAL = MPI_TYPECLASS_REAL;
+static const int TYPECLASS_COMPLEX = MPI_TYPECLASS_COMPLEX;
+
+// maximum sizes for strings
+static const int MAX_PROCESSOR_NAME = MPI_MAX_PROCESSOR_NAME;
+static const int MAX_ERROR_STRING = MPI_MAX_ERROR_STRING;
+static const int MAX_INFO_KEY = MPI_MAX_INFO_KEY;
+static const int MAX_INFO_VAL = MPI_MAX_INFO_VAL;
+static const int MAX_PORT_NAME = MPI_MAX_PORT_NAME;
+static const int MAX_OBJECT_NAME = MPI_MAX_OBJECT_NAME;
+
+// elementary datatypes (C / C++)
+OMPI_DECLSPEC extern const Datatype CHAR;
+OMPI_DECLSPEC extern const Datatype SHORT;          
+OMPI_DECLSPEC extern const Datatype INT;            
+OMPI_DECLSPEC extern const Datatype LONG;
+OMPI_DECLSPEC extern const Datatype SIGNED_CHAR;
+OMPI_DECLSPEC extern const Datatype UNSIGNED_CHAR;
+OMPI_DECLSPEC extern const Datatype UNSIGNED_SHORT; 
+OMPI_DECLSPEC extern const Datatype UNSIGNED;       
+OMPI_DECLSPEC extern const Datatype UNSIGNED_LONG;  
+OMPI_DECLSPEC extern const Datatype FLOAT;
+OMPI_DECLSPEC extern const Datatype DOUBLE;
+OMPI_DECLSPEC extern const Datatype LONG_DOUBLE;
+OMPI_DECLSPEC extern const Datatype BYTE;
+OMPI_DECLSPEC extern const Datatype PACKED;
+OMPI_DECLSPEC extern const Datatype WCHAR;
+
+// datatypes for reductions functions (C / C++)
+OMPI_DECLSPEC extern const Datatype FLOAT_INT;
+OMPI_DECLSPEC extern const Datatype DOUBLE_INT;
+OMPI_DECLSPEC extern const Datatype LONG_INT;
+OMPI_DECLSPEC extern const Datatype TWOINT;
+OMPI_DECLSPEC extern const Datatype SHORT_INT;
+OMPI_DECLSPEC extern const Datatype LONG_DOUBLE_INT;
+
+// elementary datatype (Fortran)
+OMPI_DECLSPEC extern const Datatype INTEGER;
+OMPI_DECLSPEC extern const Datatype REAL;
+OMPI_DECLSPEC extern const Datatype DOUBLE_PRECISION;
+OMPI_DECLSPEC extern const Datatype F_COMPLEX;
+OMPI_DECLSPEC extern const Datatype LOGICAL;
+OMPI_DECLSPEC extern const Datatype CHARACTER;
+
+// datatype for reduction functions (Fortran)
+OMPI_DECLSPEC extern const Datatype TWOREAL;
+OMPI_DECLSPEC extern const Datatype TWODOUBLE_PRECISION;
+OMPI_DECLSPEC extern const Datatype TWOINTEGER;
+
+// optional datatypes (Fortran)
+OMPI_DECLSPEC extern const Datatype INTEGER1;
+OMPI_DECLSPEC extern const Datatype INTEGER2;
+OMPI_DECLSPEC extern const Datatype INTEGER4;
+OMPI_DECLSPEC extern const Datatype REAL2;
+OMPI_DECLSPEC extern const Datatype REAL4;
+OMPI_DECLSPEC extern const Datatype REAL8;
+
+// optional datatype (C / C++)
+OMPI_DECLSPEC extern const Datatype LONG_LONG;
+OMPI_DECLSPEC extern const Datatype UNSIGNED_LONG_LONG;
+
+// c++ types
+OMPI_DECLSPEC extern const Datatype BOOL;
+OMPI_DECLSPEC extern const Datatype COMPLEX;
+OMPI_DECLSPEC extern const Datatype DOUBLE_COMPLEX;
+OMPI_DECLSPEC extern const Datatype LONG_DOUBLE_COMPLEX;
+
+// special datatypes for contstruction of derived datatypes
+OMPI_DECLSPEC extern const Datatype UB;
+OMPI_DECLSPEC extern const Datatype LB;
+
+// datatype decoding constants
+static const int COMBINER_NAMED = MPI_COMBINER_NAMED;
+static const int COMBINER_DUP = MPI_COMBINER_DUP;
+static const int COMBINER_CONTIGUOUS = MPI_COMBINER_CONTIGUOUS;
+static const int COMBINER_VECTOR = MPI_COMBINER_VECTOR;
+static const int COMBINER_HVECTOR_INTEGER = MPI_COMBINER_HVECTOR_INTEGER;
+static const int COMBINER_HVECTOR = MPI_COMBINER_HVECTOR;
+static const int COMBINER_INDEXED = MPI_COMBINER_INDEXED;
+static const int COMBINER_HINDEXED_INTEGER = MPI_COMBINER_HINDEXED_INTEGER;
+static const int COMBINER_HINDEXED = MPI_COMBINER_HINDEXED;
+static const int COMBINER_INDEXED_BLOCK = MPI_COMBINER_INDEXED_BLOCK;
+static const int COMBINER_STRUCT_INTEGER = MPI_COMBINER_STRUCT_INTEGER;
+static const int COMBINER_STRUCT = MPI_COMBINER_STRUCT;
+static const int COMBINER_SUBARRAY = MPI_COMBINER_SUBARRAY;
+static const int COMBINER_DARRAY = MPI_COMBINER_DARRAY;
+static const int COMBINER_F90_REAL = MPI_COMBINER_F90_REAL;
+static const int COMBINER_F90_COMPLEX = MPI_COMBINER_F90_COMPLEX;
+static const int COMBINER_F90_INTEGER = MPI_COMBINER_F90_INTEGER;
+static const int COMBINER_RESIZED = MPI_COMBINER_RESIZED;
+
+// thread constants
+static const int THREAD_SINGLE = MPI_THREAD_SINGLE;
+static const int THREAD_FUNNELED = MPI_THREAD_FUNNELED;
+static const int THREAD_SERIALIZED = MPI_THREAD_SERIALIZED;
+static const int THREAD_MULTIPLE = MPI_THREAD_MULTIPLE;
+
+// reserved communicators
+// JGS these can not be const because Set_errhandler is not const
+OMPI_DECLSPEC extern Intracomm COMM_WORLD;
+OMPI_DECLSPEC extern Intracomm COMM_SELF;
+
+// results of communicator and group comparisons
+static const int IDENT = MPI_IDENT;
+static const int CONGRUENT = MPI_CONGRUENT;
+static const int SIMILAR = MPI_SIMILAR;
+static const int UNEQUAL = MPI_UNEQUAL;
+
+// environmental inquiry keys
+static const int TAG_UB = MPI_TAG_UB;
+static const int HOST = MPI_HOST;
+static const int IO = MPI_IO;
+static const int WTIME_IS_GLOBAL = MPI_WTIME_IS_GLOBAL;
+static const int APPNUM = MPI_APPNUM;
+static const int LASTUSEDCODE = MPI_LASTUSEDCODE;
+static const int UNIVERSE_SIZE = MPI_UNIVERSE_SIZE;
+static const int WIN_BASE = MPI_WIN_BASE;
+static const int WIN_SIZE = MPI_WIN_SIZE;
+static const int WIN_DISP_UNIT = MPI_WIN_DISP_UNIT;
+
+// collective operations
+OMPI_DECLSPEC extern const Op MAX;
+OMPI_DECLSPEC extern const Op MIN;
+OMPI_DECLSPEC extern const Op SUM;
+OMPI_DECLSPEC extern const Op PROD;
+OMPI_DECLSPEC extern const Op MAXLOC;
+OMPI_DECLSPEC extern const Op MINLOC;
+OMPI_DECLSPEC extern const Op BAND;
+OMPI_DECLSPEC extern const Op BOR;
+OMPI_DECLSPEC extern const Op BXOR;
+OMPI_DECLSPEC extern const Op LAND;
+OMPI_DECLSPEC extern const Op LOR;
+OMPI_DECLSPEC extern const Op LXOR;
+OMPI_DECLSPEC extern const Op REPLACE;
+
+// null handles
+OMPI_DECLSPEC extern const Group        GROUP_NULL;
+OMPI_DECLSPEC extern const Win          WIN_NULL;
+OMPI_DECLSPEC extern const Info         INFO_NULL;
+OMPI_DECLSPEC extern Comm_Null          COMM_NULL;
+OMPI_DECLSPEC extern const Datatype     DATATYPE_NULL;
+OMPI_DECLSPEC extern Request            REQUEST_NULL;
+OMPI_DECLSPEC extern const Op           OP_NULL;
+OMPI_DECLSPEC extern const Errhandler   ERRHANDLER_NULL;  
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+OMPI_DECLSPEC extern const File         FILE_NULL;
+#endif
+
+// constants specifying empty or ignored input
+OMPI_DECLSPEC extern const char**       ARGV_NULL;
+OMPI_DECLSPEC extern const char***      ARGVS_NULL;
+
+// empty group
+OMPI_DECLSPEC extern const Group  GROUP_EMPTY;
+
+// topologies
+static const int GRAPH = MPI_GRAPH;
+static const int CART = MPI_CART;
+
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+// MPI-2 IO
+static const int MODE_CREATE = MPI_MODE_CREATE;
+static const int MODE_RDONLY = MPI_MODE_RDONLY;
+static const int MODE_WRONLY = MPI_MODE_WRONLY;
+static const int MODE_RDWR = MPI_MODE_RDWR;
+static const int MODE_DELETE_ON_CLOSE = MPI_MODE_DELETE_ON_CLOSE;
+static const int MODE_UNIQUE_OPEN = MPI_MODE_UNIQUE_OPEN;
+static const int MODE_EXCL = MPI_MODE_EXCL;
+static const int MODE_APPEND = MPI_MODE_APPEND;
+static const int MODE_SEQUENTIAL = MPI_MODE_SEQUENTIAL;
+
+static const int DISPLACEMENT_CURRENT = MPI_DISPLACEMENT_CURRENT;
+
+#if !defined(OMPI_IGNORE_CXX_SEEK) && OMPI_WANT_MPI_CXX_SEEK
+static const int SEEK_SET = ::SEEK_SET;
+static const int SEEK_CUR = ::SEEK_CUR;
+static const int SEEK_END = ::SEEK_END;
+#endif
+
+static const int MAX_DATAREP_STRING = MPI_MAX_DATAREP_STRING;
+#endif
+
+// one-sided constants
+static const int MODE_NOCHECK = MPI_MODE_NOCHECK;
+static const int MODE_NOPRECEDE = MPI_MODE_NOPRECEDE;
+static const int MODE_NOPUT = MPI_MODE_NOPUT;
+static const int MODE_NOSTORE = MPI_MODE_NOSTORE;
+static const int MODE_NOSUCCEED = MPI_MODE_NOSUCCEED;
+
+static const int LOCK_EXCLUSIVE = MPI_LOCK_EXCLUSIVE;
+static const int LOCK_SHARED = MPI_LOCK_SHARED;
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype.h	(revision 97)
@@ -0,0 +1,235 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Sun Microsystems, Inc.  All rights reserved.
+// Copyright (c) 2006-2007 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Datatype {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Datatype;
+#endif
+public:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction
+  inline Datatype() { }
+
+  // inter-language operability
+  inline Datatype(MPI_Datatype i) : pmpi_datatype(i) { }
+
+  // copy / assignment
+  inline Datatype(const Datatype& dt) : pmpi_datatype(dt.pmpi_datatype) { }
+
+  inline Datatype(const PMPI::Datatype& dt) : pmpi_datatype(dt) { }
+  
+  inline virtual ~Datatype() {}
+
+  inline Datatype& operator=(const Datatype& dt) {
+    pmpi_datatype = dt.pmpi_datatype; return *this; }
+
+  // comparison
+  inline bool operator== (const Datatype &a) const
+    { return (bool) (pmpi_datatype == a.pmpi_datatype); }
+
+  inline bool operator!= (const Datatype &a) const
+    { return (bool) !(*this == a); }
+
+  // inter-language operability
+  inline Datatype& operator= (const MPI_Datatype &i) 
+    { pmpi_datatype = i; return *this; }
+
+  inline operator MPI_Datatype() const { return (MPI_Datatype)pmpi_datatype; }
+  //  inline operator MPI_Datatype* ()/* JGS const */ { return pmpi_datatype; }
+
+  inline operator const PMPI::Datatype&() const { return pmpi_datatype; }
+
+  inline const PMPI::Datatype& pmpi() const { return pmpi_datatype; }
+
+#else
+
+  // construction / destruction
+  inline Datatype() : mpi_datatype(MPI_DATATYPE_NULL) { }
+  inline virtual ~Datatype() {}
+  // inter-language operability
+  inline Datatype(MPI_Datatype i) : mpi_datatype(i) { }
+
+  // copy / assignment
+  inline Datatype(const Datatype& dt) : mpi_datatype(dt.mpi_datatype) { }
+  inline Datatype& operator=(const Datatype& dt) {
+    mpi_datatype = dt.mpi_datatype; return *this; }
+
+  // comparison
+  inline bool operator== (const Datatype &a) const
+    { return (bool) (mpi_datatype == a.mpi_datatype); }
+
+  inline bool operator!= (const Datatype &a) const
+    { return (bool) !(*this == a); }
+
+  // inter-language operability
+  inline Datatype& operator= (const MPI_Datatype &i) 
+    { mpi_datatype = i; return *this; }
+
+  inline operator MPI_Datatype () const { return mpi_datatype; }
+  // inline operator MPI_Datatype* ()/* JGS const */ { return &mpi_datatype; }
+
+#endif
+
+  // 
+  // User Defined Functions
+  //
+  typedef int Copy_attr_function(const Datatype& oldtype,
+						int type_keyval,
+						void* extra_state,
+						const void* attribute_val_in,
+						void* attribute_val_out,
+						bool& flag);
+  
+  typedef int Delete_attr_function(Datatype& type, int type_keyval, 
+				   void* attribute_val, void* extra_state);
+  
+  //
+  // Point-to-Point Communication
+  //
+  
+  virtual Datatype Create_contiguous(int count) const;
+  
+  virtual Datatype Create_vector(int count, int blocklength,
+				 int stride) const;
+  
+  virtual Datatype Create_indexed(int count,
+				  const int array_of_blocklengths[], 
+				  const int array_of_displacements[]) const;
+
+  static Datatype Create_struct(int count, const int array_of_blocklengths[],
+				const Aint array_of_displacements[],
+				const Datatype array_if_types[]);
+  
+  virtual Datatype Create_hindexed(int count, const int array_of_blocklengths[],
+				   const Aint array_of_displacements[]) const;
+
+  virtual Datatype Create_hvector(int count, int blocklength, Aint stride) const;
+
+  virtual Datatype Create_indexed_block(int count, int blocklength,
+					const int array_of_blocklengths[]) const;
+  virtual Datatype Create_resized(const Aint lb, const Aint extent) const;
+
+  virtual int Get_size() const;
+
+  virtual void Get_extent(Aint& lb, Aint& extent) const;
+
+  virtual void Get_true_extent(Aint&, Aint&) const;
+
+  virtual void Commit();
+  
+  virtual void Free();
+
+  virtual void Pack(const void* inbuf, int incount, void *outbuf, 
+		    int outsize, int& position, const Comm &comm) const;
+
+  virtual void Unpack(const void* inbuf, int insize, void *outbuf, int outcount,
+		      int& position, const Comm& comm) const;
+
+  virtual int Pack_size(int incount, const Comm& comm) const;
+
+  //
+  // Miscellany
+  //
+  virtual Datatype Create_subarray(int ndims, const int array_of_sizes[],
+				   const int array_of_subsizes[], 
+				   const int array_of_starts[], int order) 
+    const;   
+
+  //
+  // External Interfaces
+  //
+
+  virtual Datatype Dup() const;
+
+  // Need 4 overloaded versions of this function because per the
+  // MPI-2 spec, you can mix-n-match the C predefined functions with
+  // C++ functions.
+  static int Create_keyval(Copy_attr_function* type_copy_attr_fn,
+                           Delete_attr_function* type_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(MPI_Type_copy_attr_function* type_copy_attr_fn,
+                           MPI_Type_delete_attr_function* type_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(Copy_attr_function* type_copy_attr_fn,
+                           MPI_Type_delete_attr_function* type_delete_attr_fn,
+                           void* extra_state);
+  static int Create_keyval(MPI_Type_copy_attr_function* type_copy_attr_fn,
+                           Delete_attr_function* type_delete_attr_fn,
+                           void* extra_state);
+
+protected:
+  // Back-end function to do the heavy lifting for creating the
+  // keyval
+  static int do_create_keyval(MPI_Type_copy_attr_function* c_copy_fn,
+                              MPI_Type_delete_attr_function* c_delete_fn,
+                              Copy_attr_function* cxx_copy_fn,
+                              Delete_attr_function* cxx_delete_fn,
+                              void* extra_state, int &keyval);
+
+public:
+
+  virtual void Delete_attr(int type_keyval);
+
+  static void Free_keyval(int& type_keyval);
+
+  virtual bool Get_attr(int type_keyval, void* attribute_val) const;
+
+  virtual void Get_contents(int max_integers, int max_addresses,
+                            int max_datatypes, int array_of_integers[],
+                            Aint array_of_addresses[],
+                            Datatype array_of_datatypes[]) const;
+
+  virtual void Get_envelope(int& num_integers, int& num_addresses,
+                            int& num_datatypes, int& combiner) const;
+
+  virtual void Get_name(char* type_name, int& resultlen) const;
+
+  virtual void Set_attr(int type_keyval, const void* attribute_val);
+
+  virtual void Set_name(const char* type_name);
+
+
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Datatype pmpi_datatype;
+#else
+protected:
+  MPI_Datatype mpi_datatype;
+#endif
+
+public:
+    // Data that is passed through keyval create when C++ callback
+    // functions are used
+    struct keyval_intercept_data_t {
+        MPI_Type_copy_attr_function *c_copy_fn;
+        MPI_Type_delete_attr_function *c_delete_fn;
+        Copy_attr_function* cxx_copy_fn;
+        Delete_attr_function* cxx_delete_fn;
+        void *extra_state;
+    };
+
+    // Protect the global list from multiple thread access
+    static opal_mutex_t cxx_extra_states_lock;
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/datatype_inln.h	(revision 97)
@@ -0,0 +1,347 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Sun Microsystems, Inc.  All rights reserved.
+
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+//
+// Point-to-Point Communication
+//
+
+inline MPI::Datatype
+MPI::Datatype::Create_contiguous(int count) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_contiguous(count, mpi_datatype, &newtype);
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_vector(int count, int blocklength,
+			     int stride) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_vector(count, blocklength, stride, mpi_datatype, &newtype);
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_indexed(int count,
+				     const int array_of_blocklengths[], 
+				     const int array_of_displacements[]) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_indexed(count, const_cast<int *>(array_of_blocklengths), 
+			 const_cast<int *>(array_of_displacements), mpi_datatype, &newtype);
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_struct(int count, const int array_of_blocklengths[],
+				    const MPI::Aint array_of_displacements[],
+				    const MPI::Datatype array_of_types[])
+{
+  MPI_Datatype newtype;
+  int i;
+  MPI_Datatype* type_array = new MPI_Datatype[count];
+  for (i=0; i < count; i++)
+    type_array[i] = array_of_types[i];
+
+  (void)MPI_Type_create_struct(count, const_cast<int *>(array_of_blocklengths),
+                               const_cast<MPI_Aint*>(array_of_displacements), 
+                               type_array, &newtype);
+  delete[] type_array;
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_hindexed(int count, const int array_of_blocklengths[],
+				      const MPI::Aint array_of_displacements[]) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_create_hindexed(count, const_cast<int *>(array_of_blocklengths),
+                                 const_cast<MPI_Aint*>(array_of_displacements),
+                                 mpi_datatype, &newtype) ;
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_hvector(int count, int blocklength,
+				     MPI::Aint stride) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_create_hvector(count, blocklength, (MPI_Aint)stride,
+                                mpi_datatype, &newtype);
+
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_indexed_block(int count, int blocklength,
+				    const int array_of_displacements[]) const
+{
+  MPI_Datatype newtype;
+  (void)MPI_Type_create_indexed_block(count, blocklength, const_cast<int *>(array_of_displacements), 
+                                      mpi_datatype, &newtype);
+  return newtype;
+}
+
+inline MPI::Datatype
+MPI::Datatype::Create_resized(const MPI::Aint lb, const MPI::Aint extent) const
+{
+    MPI_Datatype newtype;
+
+    (void) MPI_Type_create_resized(mpi_datatype, lb, extent, &newtype);
+    return(newtype);
+}
+
+inline int
+MPI::Datatype::Get_size() const 
+{
+  int size;
+  (void)MPI_Type_size(mpi_datatype, &size);
+  return size;
+}
+
+inline void
+MPI::Datatype::Get_extent(MPI::Aint& lb, MPI::Aint& extent) const
+{
+  (void)MPI_Type_get_extent(mpi_datatype, &lb, &extent); 
+}
+
+inline void
+MPI::Datatype::Get_true_extent(MPI::Aint& lb, MPI::Aint& extent) const
+{
+    (void) MPI_Type_get_true_extent(mpi_datatype, &lb, &extent);
+}
+
+inline void
+MPI::Datatype::Commit() 
+{
+  (void)MPI_Type_commit(&mpi_datatype);
+}
+
+inline void
+MPI::Datatype::Pack(const void* inbuf, int incount,
+			   void *outbuf, int outsize,
+			   int& position, const MPI::Comm &comm) const
+{
+  (void)MPI_Pack(const_cast<void *>(inbuf), incount,  mpi_datatype, outbuf,
+		 outsize, &position, comm);
+}
+
+inline void
+MPI::Datatype::Unpack(const void* inbuf, int insize,
+			     void *outbuf, int outcount, int& position,
+			     const MPI::Comm& comm) const 
+{
+  (void)MPI_Unpack(const_cast<void *>(inbuf), insize, &position,
+		   outbuf, outcount, mpi_datatype, comm);
+}
+
+inline int
+MPI::Datatype::Pack_size(int incount, const MPI::Comm& comm) const 
+{
+  int size;
+  (void)MPI_Pack_size(incount, mpi_datatype, comm, &size);
+  return size;
+}
+
+
+//
+// Miscellany
+//
+
+inline MPI::Datatype
+MPI::Datatype::Create_subarray(int ndims, const int array_of_sizes[],
+				      const int array_of_subsizes[],
+				      const int array_of_starts[], int order)
+  const
+{
+  MPI_Datatype type;
+  (void) MPI_Type_create_subarray(ndims, const_cast<int *>(array_of_sizes), 
+                                  const_cast<int *>(array_of_subsizes),
+                                  const_cast<int *>(array_of_starts),
+                                  order, mpi_datatype, &type);
+  return type;
+}
+
+
+//
+// External Interfaces
+//
+
+
+inline MPI::Datatype
+MPI::Datatype::Dup() const
+{
+  MPI_Datatype type;
+  (void) MPI_Type_dup(mpi_datatype, &type);
+  return type;
+}
+
+
+// 1) original Create_keyval that takes the first 2 arguments as C++
+//    functions
+inline int
+MPI::Datatype::Create_keyval(MPI::Datatype::Copy_attr_function* type_copy_attr_fn,
+                             MPI::Datatype::Delete_attr_function* type_delete_attr_fn, 
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, NULL, 
+                           type_copy_attr_fn, type_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 2) overload Create_keyval to take the first 2 arguments as C
+//    functions
+inline int
+MPI::Datatype::Create_keyval(MPI_Type_copy_attr_function* type_copy_attr_fn,
+                             MPI_Type_delete_attr_function* type_delete_attr_fn, 
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(type_copy_attr_fn, type_delete_attr_fn,
+                           NULL, NULL, 
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 3) overload Create_keyval to take the first 2 arguments as C++ & C
+//    functions
+inline int
+MPI::Datatype::Create_keyval(MPI::Datatype::Copy_attr_function* type_copy_attr_fn,
+                             MPI_Type_delete_attr_function* type_delete_attr_fn,
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, type_delete_attr_fn,
+                           type_copy_attr_fn, NULL, 
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 4) overload Create_keyval to take the first 2 arguments as C & C++
+//    functions
+inline int
+MPI::Datatype::Create_keyval(MPI_Type_copy_attr_function* type_copy_attr_fn,
+                             MPI::Datatype::Delete_attr_function* type_delete_attr_fn,
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(type_copy_attr_fn, NULL,
+                           NULL, type_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+inline void
+MPI::Datatype::Delete_attr(int type_keyval)
+{
+  (void) MPI_Type_delete_attr(mpi_datatype, type_keyval);
+}
+
+inline void
+MPI::Datatype::Free_keyval(int& type_keyval)
+{
+    (void) MPI_Type_free_keyval(&type_keyval);
+}
+
+inline bool
+MPI::Datatype::Get_attr(int type_keyval,
+                          void* attribute_val) const
+{
+  int ret;
+  (void) MPI_Type_get_attr(mpi_datatype, type_keyval, attribute_val, &ret);
+  return OPAL_INT_TO_BOOL(ret);
+}
+
+
+inline void
+MPI::Datatype::Get_contents(int max_integers, int max_addresses,
+                            int max_datatypes, int array_of_integers[],
+                            MPI::Aint array_of_addresses[],
+                            MPI::Datatype array_of_datatypes[]) const
+{
+    int i;
+    MPI_Datatype *c_datatypes = new MPI_Datatype[max_datatypes];
+    
+    (void) MPI_Type_get_contents(mpi_datatype, max_integers, max_addresses,
+                                 max_datatypes, 
+                                 const_cast<int *>(array_of_integers), 
+                                 const_cast<MPI_Aint*>(array_of_addresses), 
+                                 c_datatypes);
+    // Convert the C MPI_Datatypes to the user's OUT MPI::Datatype
+    // array parameter
+    for (i = 0; i < max_datatypes; ++i) {
+        array_of_datatypes[i] = c_datatypes[i];
+    }
+    delete[] c_datatypes;
+}
+
+inline void
+MPI::Datatype::Get_envelope(int& num_integers, int& num_addresses,
+			  int& num_datatypes, int& combiner) const
+{
+  (void) MPI_Type_get_envelope(mpi_datatype, &num_integers, &num_addresses,
+				&num_datatypes, &combiner);
+}
+
+inline void
+MPI::Datatype::Get_name(char* type_name, int& resultlen) const
+{
+  (void) MPI_Type_get_name(mpi_datatype, type_name, &resultlen);
+}
+
+inline void
+MPI::Datatype::Set_attr(int type_keyval, const void* attribute_val)
+{
+  (void) MPI_Type_set_attr(mpi_datatype, type_keyval, const_cast<void *>(attribute_val));
+}
+
+inline void
+MPI::Datatype::Set_name(const char* type_name)
+{
+  (void) MPI_Type_set_name(mpi_datatype, const_cast<char *>(type_name));
+}
+
+
+#if 0
+//
+// User Defined Functions
+//
+
+typedef int MPI::Datatype::Copy_attr_function(const Datatype& oldtype,
+						     int type_keyval,
+						     void* extra_state,
+						     void* attribute_val_in,
+						     void* attribute_val_out,
+						     bool& flag);
+
+typedef int MPI::Datatype::Delete_attr_function(Datatype& type,
+						       int type_keyval,
+						       void* attribute_val,
+						       void* extra_state);
+#endif
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler.h	(revision 97)
@@ -0,0 +1,63 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Errhandler {
+public:
+  // construction / destruction
+  inline Errhandler()
+    : mpi_errhandler(MPI_ERRHANDLER_NULL) {}
+
+  inline virtual ~Errhandler() { }
+
+  inline Errhandler(MPI_Errhandler i)
+    : mpi_errhandler(i) {}
+
+ // copy / assignment
+  inline Errhandler(const Errhandler& e) : mpi_errhandler(e.mpi_errhandler) { }
+
+  inline Errhandler& operator=(const Errhandler& e) {
+    mpi_errhandler = e.mpi_errhandler;
+    return *this;
+  }
+
+  // comparison
+  inline bool operator==(const Errhandler &a) {
+    return (bool)(mpi_errhandler == a.mpi_errhandler); }
+  
+  inline bool operator!=(const Errhandler &a) {
+    return (bool)!(*this == a); }
+
+  // inter-language operability
+  inline Errhandler& operator= (const MPI_Errhandler &i) {
+    mpi_errhandler = i; return *this; }
+ 
+  inline operator MPI_Errhandler() const { return mpi_errhandler; }
+ 
+  //  inline operator MPI_Errhandler*() { return &mpi_errhandler; }
+
+  //
+  // Errhandler access functions
+  //
+  
+  virtual void Free();
+
+private:
+  MPI_Errhandler mpi_errhandler;
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/errhandler_inln.h	(revision 97)
@@ -0,0 +1,49 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+inline PMPI::Errhandler::Errhandler(const PMPI::Errhandler& e)
+  : handler_fn(e.handler_fn), mpi_errhandler(e.mpi_errhandler) { }
+
+inline PMPI::Errhandler&
+PMPI::Errhandler::operator=(const PMPI::Errhandler& e)
+{
+  handler_fn = e.handler_fn;
+  mpi_errhandler = e.mpi_errhandler;
+  return *this;
+}
+
+inline bool
+PMPI::Errhandler::operator==(const PMPI::Errhandler &a)
+{
+  return (MPI2CPP_BOOL_T)(mpi_errhandler == a.mpi_errhandler);
+}
+
+#endif
+
+inline void
+MPI::Errhandler::Free()
+{
+  (void)MPI_Errhandler_free(&mpi_errhandler);
+}
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/exception.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/exception.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/exception.h	(revision 97)
@@ -0,0 +1,74 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Exception {
+public:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  inline Exception(int ec) : pmpi_exception(ec) { }
+
+  int Get_error_code() const;
+  
+  int Get_error_class() const;
+  
+  const char* Get_error_string() const;
+ 
+#else
+
+  inline Exception(int ec) : error_code(ec), error_string(0), error_class(-1) {
+    (void)MPI_Error_class(error_code, &error_class);
+    int resultlen;
+    error_string = new char[MAX_ERROR_STRING];
+    (void)MPI_Error_string(error_code, error_string, &resultlen);
+  }
+  inline ~Exception() {
+    delete[] error_string;
+  }
+  // Better put in a copy constructor here since we have a string;
+  // copy by value (from the default copy constructor) would be
+  // disasterous.
+  inline Exception(const Exception& a)
+    : error_code(a.error_code), error_class(a.error_class)
+  {
+    error_string = new char[MAX_ERROR_STRING];
+    // Rather that force an include of <string.h>, especially this
+    // late in the game (recall that this file is included deep in
+    // other .h files), we'll just do the copy ourselves.
+    for (int i = 0; i < MAX_ERROR_STRING; i++)
+      error_string[i] = a.error_string[i];
+  }
+
+  inline int Get_error_code() const { return error_code; }
+
+  inline int Get_error_class() const { return error_class; }
+  
+  inline const char* Get_error_string() const { return error_string; }
+
+#endif
+ 
+protected:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Exception pmpi_exception;
+#else
+  int error_code;
+  char* error_string;
+  int error_class;
+#endif
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file.h	(revision 97)
@@ -0,0 +1,315 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+// Typedefs for C++ callbacks registered via MPI::Register_datarep
+typedef void Datarep_extent_function(const Datatype& datatype, 
+                                     Aint& file_extent, void* extra_state);
+typedef void Datarep_conversion_function(void* userbuf, Datatype& datatype, 
+                                         int count, void* filebuf, 
+                                         Offset position, void* extra_state);
+
+// Both callback functions in C++
+void Register_datarep(const char* datarep, 
+                      Datarep_conversion_function* read_conversion_fn, 
+                      Datarep_conversion_function* write_conversion_fn, 
+                      Datarep_extent_function* dtype_file_extent_fn, 
+                      void* extra_state);
+
+// Overload for C read callback function (MPI_CONVERSION_FN_NULL)
+void Register_datarep(const char* datarep, 
+                      MPI_Datarep_conversion_function* read_conversion_fn, 
+                      Datarep_conversion_function* write_conversion_fn, 
+                      Datarep_extent_function* dtype_file_extent_fn, 
+                      void* extra_state);
+
+// Overload for C write callback function (MPI_CONVERSION_FN_NULL)
+void Register_datarep(const char* datarep, 
+                      Datarep_conversion_function* read_conversion_fn, 
+                      MPI_Datarep_conversion_function* write_conversion_fn, 
+                      Datarep_extent_function* dtype_file_extent_fn, 
+                      void* extra_state);
+
+// Overload for C read and write callback functions (MPI_CONVERSION_FN_NULL)
+void Register_datarep(const char* datarep, 
+                      MPI_Datarep_conversion_function* read_conversion_fn, 
+                      MPI_Datarep_conversion_function* write_conversion_fn, 
+                      Datarep_extent_function* dtype_file_extent_fn, 
+                      void* extra_state);
+
+class File {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class P;
+
+#endif
+  friend class MPI::Comm; //so I can access pmpi_file data member in comm.cc
+  friend class MPI::Request; //and also from request.cc
+
+public:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction / destruction
+  File() { }
+  virtual ~File() { }
+
+
+  // copy / assignment
+  File(const File& data) : pmpi_file(data.pmpi_file) { }
+
+  File(MPI_File i) : pmpi_file(i) { }
+
+  File& operator=(const File& data) {
+    pmpi_file = data.pmpi_file; return *this; }
+
+  // comparison, don't need for file
+
+  // inter-language operability
+  File& operator= (const MPI_File &i) {
+    pmpi_file = i; return *this; }
+  operator MPI_File () const { return pmpi_file; }
+  //  operator MPI_File* () const { return pmpi_file; }
+  operator const PMPI::File&() const { return pmpi_file; }
+
+#else
+
+  File() : mpi_file(MPI_FILE_NULL) { }
+  // copy
+  File(const File& data) : mpi_file(data.mpi_file) { }
+
+  File(MPI_File i) : mpi_file(i) { }
+	
+  virtual ~File() { }
+
+  File& operator=(const File& data) {
+    mpi_file = data.mpi_file; return *this; }
+
+  // comparison, don't need for file
+
+  // inter-language operability
+  File& operator= (const MPI_File &i) {
+    mpi_file = i; return *this; }
+  operator MPI_File () const { return mpi_file; }
+  //  operator MPI_File* () const { return (MPI_File*)&mpi_file; }
+
+#endif
+
+  // from the I/o chapter of MPI - 2 
+
+  void Close();
+
+  static void Delete(const char* filename, const MPI::Info& info);
+
+  int Get_amode() const;
+
+  bool Get_atomicity() const;
+
+  MPI::Offset Get_byte_offset(const MPI::Offset disp) const;
+
+  MPI::Group Get_group() const;
+
+  MPI::Info Get_info() const;
+
+  MPI::Offset Get_position() const;
+
+  MPI::Offset Get_position_shared() const;
+
+  MPI::Offset Get_size() const;
+
+  MPI::Aint Get_type_extent(const MPI::Datatype& datatype) const;
+
+  void Get_view(MPI::Offset& disp, MPI::Datatype& etype, 
+		MPI::Datatype& filetype, char* datarep) const;
+
+  MPI::Request Iread(void* buf, int count, 
+		     const MPI::Datatype& datatype);
+  
+  MPI::Request Iread_at(MPI::Offset offset, void* buf, int count, 
+			const MPI::Datatype& datatype);
+  
+  MPI::Request Iread_shared(void* buf, int count,
+			    const MPI::Datatype& datatype);
+
+  MPI::Request Iwrite(const void* buf, int count,
+		       const MPI::Datatype& datatype);
+
+  MPI::Request Iwrite_at(MPI::Offset offset, const void* buf, 
+			 int count,  const MPI::Datatype& datatype);
+
+  MPI::Request Iwrite_shared(const void* buf, int count,
+			      const MPI::Datatype& datatype);
+
+  static MPI::File Open(const MPI::Intracomm& comm,
+			const char* filename, int amode,
+			const MPI::Info& info);
+
+  void Preallocate(MPI::Offset size);
+
+  void Read(void* buf, int count, const MPI::Datatype& datatype);
+
+  void Read(void* buf, int count, const MPI::Datatype& datatype,
+	    MPI::Status& status);
+
+  void Read_all(void* buf, int count, const MPI::Datatype& datatype);
+
+  void Read_all(void* buf, int count, const MPI::Datatype& datatype,
+		MPI::Status& status);
+
+  void Read_all_begin(void* buf, int count,
+		      const MPI::Datatype& datatype);
+
+  void Read_all_end(void* buf);
+
+  void Read_all_end(void* buf, MPI::Status& status);
+
+  void Read_at(MPI::Offset offset, 
+	       void* buf, int count,  const MPI::Datatype& datatype);
+
+  void Read_at(MPI::Offset offset, void* buf, int count,
+	       const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Read_at_all(MPI::Offset offset, void* buf, int count, 
+		   const MPI::Datatype& datatype);
+  
+  void Read_at_all(MPI::Offset offset, void* buf, int count,
+		   const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Read_at_all_begin(MPI::Offset offset, void* buf, int count,
+			 const MPI::Datatype& datatype);
+  
+  void Read_at_all_end(void* buf);
+
+  void Read_at_all_end(void* buf, MPI::Status& status);
+
+  void Read_ordered(void* buf, int count,
+		    const MPI::Datatype& datatype);
+
+  void Read_ordered(void* buf, int count,
+		    const MPI::Datatype& datatype,
+		    MPI::Status& status);
+
+  void Read_ordered_begin(void* buf, int count,
+			  const MPI::Datatype& datatype);
+
+  void Read_ordered_end(void* buf);
+
+  void Read_ordered_end(void* buf, MPI::Status& status);
+
+  void Read_shared(void* buf, int count,
+		   const MPI::Datatype& datatype);
+
+  void Read_shared(void* buf, int count,
+		   const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Seek(MPI::Offset offset, int whence);
+
+  void Seek_shared(MPI::Offset offset, int whence);
+
+  void Set_atomicity(bool flag);
+
+  void Set_info(const MPI::Info& info);
+
+  void Set_size(MPI::Offset size);
+
+  void Set_view(MPI::Offset disp,  const MPI::Datatype& etype,
+		const MPI::Datatype& filetype, const char* datarep,
+		const MPI::Info& info);
+
+  void Sync();
+
+  void Write(const void* buf, int count,
+	      const MPI::Datatype& datatype);
+
+  void Write(const void* buf, int count,
+	      const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Write_all(const void* buf, int count,
+		  const MPI::Datatype& datatype);
+
+  void Write_all(const void* buf, int count,
+		  const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Write_all_begin(const void* buf, int count,
+			const MPI::Datatype& datatype);
+
+  void Write_all_end(const void* buf);
+
+  void Write_all_end(const void* buf, MPI::Status& status);
+
+  void Write_at(MPI::Offset offset,  const void* buf, int count,
+		const MPI::Datatype& datatype);
+
+  void Write_at(MPI::Offset offset,  const void* buf, int count,
+		const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Write_at_all(MPI::Offset offset,  const void* buf, int count,
+		    const MPI::Datatype& datatype);
+
+  void Write_at_all(MPI::Offset offset,  const void* buf, int count,
+		    const MPI::Datatype& datatype,
+  			     MPI::Status& status);
+
+  void Write_at_all_begin(MPI::Offset offset, const void* buf,
+			  int count,  const MPI::Datatype& datatype);
+
+  void Write_at_all_end(const void* buf);
+
+  void Write_at_all_end(const void* buf, MPI::Status& status);
+
+  void Write_ordered(const void* buf, int count,
+		      const MPI::Datatype& datatype);
+
+  void Write_ordered(const void* buf, int count,
+		      const MPI::Datatype& datatype, MPI::Status& status);
+
+  void Write_ordered_begin(const void* buf, int count, 
+			    const MPI::Datatype& datatype);
+
+  void Write_ordered_end(const void* buf);
+
+  void Write_ordered_end(const void* buf, MPI::Status& status);
+
+  void Write_shared(const void* buf, int count,
+		     const MPI::Datatype& datatype);
+
+  void Write_shared(const void* buf, int count,
+		     const MPI::Datatype& datatype, MPI::Status& status);
+
+  //
+  // Errhandler
+  //
+  typedef void Errhandler_fn(MPI::File &, int *, ... );
+
+  static MPI::Errhandler Create_errhandler(Errhandler_fn* function); 
+
+  MPI::Errhandler Get_errhandler() const;
+
+  void Set_errhandler(const MPI::Errhandler& errhandler) const;
+
+  void Call_errhandler(int errorcode) const;
+
+protected:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+      PMPI::File pmpi_file;
+
+#else
+  MPI_File mpi_file;
+
+#endif
+};
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/file_inln.h	(revision 97)
@@ -0,0 +1,655 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+inline void 
+MPI::File::Delete(const char* filename, const MPI::Info& info) 
+{
+  (void) MPI_File_delete(const_cast<char *>(filename), info);
+}
+
+
+inline int 
+MPI::File::Get_amode() const 
+{
+  int amode;
+  (void) MPI_File_get_amode(mpi_file, &amode);
+  return amode;
+}
+
+
+inline bool 
+MPI::File::Get_atomicity() const 
+{
+  int flag;
+  (void) MPI_File_get_atomicity(mpi_file, &flag);
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline MPI::Offset
+MPI::File::Get_byte_offset(const MPI::Offset disp) const 
+{
+  MPI_Offset offset, ldisp;
+  ldisp = disp;
+  (void) MPI_File_get_byte_offset(mpi_file, ldisp, &offset);
+  return offset;
+}
+
+inline MPI::Group 
+MPI::File::Get_group() const
+{
+  MPI_Group group;
+  (void) MPI_File_get_group(mpi_file, &group);
+  return group;
+}
+
+
+inline MPI::Info 
+MPI::File::Get_info() const
+{
+  MPI_Info info_used;
+  (void) MPI_File_get_info(mpi_file, &info_used);
+  return info_used;
+}
+
+
+inline MPI::Offset 
+MPI::File::Get_position() const
+{
+  MPI_Offset offset;
+  (void) MPI_File_get_position(mpi_file, &offset);
+  return offset;
+}
+
+
+inline MPI::Offset 
+MPI::File::Get_position_shared() const
+{
+  MPI_Offset offset;
+  (void) MPI_File_get_position_shared(mpi_file, &offset);
+  return offset;
+}
+
+
+inline MPI::Offset 
+MPI::File::Get_size() const
+{
+  MPI_Offset offset;
+  (void) MPI_File_get_size(mpi_file, &offset);
+  return offset;
+
+}
+
+
+inline MPI::Aint 
+MPI::File::Get_type_extent(const MPI::Datatype& datatype) const
+{
+  MPI_Aint extent;
+  (void) MPI_File_get_type_extent(mpi_file, datatype, &extent);
+  return extent;
+}
+
+
+inline void 
+MPI::File::Get_view(MPI::Offset& disp,
+			   MPI::Datatype& etype, 
+			   MPI::Datatype& filetype,
+			   char* datarep) const
+{
+  MPI_Datatype type, ftype;
+  type = etype;
+  ftype = filetype;
+  MPI::Offset odisp = disp;
+
+  (void) MPI_File_get_view(mpi_file, &odisp, &type, &ftype,
+			   datarep);
+}
+
+
+inline MPI::Request 
+MPI::File::Iread(void* buf, int count, 
+			      const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iread(mpi_file, buf, count, datatype, &req);
+  return req;
+}
+
+
+inline MPI::Request 
+MPI::File::Iread_at(MPI::Offset offset, void* buf, int count, 
+				 const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iread_at(mpi_file, offset, buf, count, datatype, &req);
+  return req;
+}
+
+
+inline MPI::Request 
+MPI::File::Iread_shared(void* buf, int count,
+				     const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iread_shared(mpi_file, buf, count, datatype, &req);
+  return req;
+}
+
+
+inline MPI::Request 
+MPI::File::Iwrite(const void* buf, int count,
+			 const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iwrite(mpi_file, const_cast<void *>(buf), count, datatype, &req);
+  return req;
+}
+
+
+inline MPI::Request 
+MPI::File::Iwrite_at(MPI::Offset offset, const void* buf, 
+			    int count, const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iwrite_at(mpi_file, offset, const_cast<void *>(buf), count, datatype,
+			    &req);
+  return req;
+}
+
+
+inline MPI::Request 
+MPI::File::Iwrite_shared(const void* buf, int count,
+				const MPI::Datatype& datatype)
+{
+  MPI_Request req;
+  (void) MPI_File_iwrite_shared(mpi_file, const_cast<void *>(buf), count, datatype, &req);
+  return req;
+}
+
+
+inline MPI::File 
+MPI::File::Open(const MPI::Intracomm& comm,
+				 const char* filename, int amode,
+				 const MPI::Info& info)
+{
+  MPI_File fh;
+  (void) MPI_File_open(comm, const_cast<char *>(filename), amode, info, &fh);
+  return fh;
+}
+
+
+inline void 
+MPI::File::Preallocate(MPI::Offset size)
+{
+  (void) MPI_File_preallocate(mpi_file, size);
+}
+
+
+inline void 
+MPI::File::Read(void* buf, int count,
+		       const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read(mpi_file, buf, count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Read(void* buf, int count,
+		       const MPI::Datatype& datatype,
+		       MPI::Status& status)
+{
+  (void) MPI_File_read(mpi_file, buf, count, datatype, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_all(void* buf, int count,
+			   const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read_all(mpi_file, buf, count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Read_all(void* buf, int count,
+			   const MPI::Datatype& datatype,
+			   MPI::Status& status)
+{
+  (void) MPI_File_read_all(mpi_file, buf, count, datatype, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_all_begin(void* buf, int count,
+				 const MPI::Datatype& datatype)
+{
+  (void) MPI_File_read_all_begin(mpi_file, buf, count, datatype);
+}
+
+
+inline void 
+MPI::File::Read_all_end(void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_read_all_end(mpi_file, buf, &status);
+}
+
+
+inline void 
+MPI::File::Read_all_end(void* buf, MPI::Status& status)
+{
+  (void) MPI_File_read_all_end(mpi_file, buf, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_at(MPI::Offset offset, 
+			  void* buf, int count,
+			  const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read_at(mpi_file, offset, buf, count, datatype, &status);
+
+}
+
+
+inline void 
+MPI::File::Read_at(MPI::Offset offset, void* buf, int count,
+			  const MPI::Datatype& datatype,
+			  MPI::Status& status)
+{
+  (void) MPI_File_read_at(mpi_file, offset, buf, count, datatype, 
+                          &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count, 
+			      const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read_at_all(mpi_file, offset, buf, count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Read_at_all(MPI::Offset offset, void* buf, int count,
+			      const MPI::Datatype& datatype,
+			      MPI::Status& status)
+{
+  (void) MPI_File_read_at_all(mpi_file, offset, buf, count, datatype, 
+                              &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_at_all_begin(MPI::Offset offset,
+				    void* buf, int count,
+				    const MPI::Datatype& datatype)
+{
+  (void) MPI_File_read_at_all_begin(mpi_file, offset, buf, count, datatype);
+}
+
+
+inline void 
+MPI::File::Read_at_all_end(void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_read_at_all_end(mpi_file, buf, &status);
+}
+
+
+inline void 
+MPI::File::Read_at_all_end(void* buf, MPI::Status& status)
+{
+  (void) MPI_File_read_at_all_end(mpi_file, buf, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_ordered(void* buf, int count,
+			       const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read_ordered(mpi_file, buf, count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Read_ordered(void* buf, int count,
+			       const MPI::Datatype& datatype,
+			       MPI::Status& status)
+{
+  (void) MPI_File_read_ordered(mpi_file, buf, count, datatype, 
+                               &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_ordered_begin(void* buf, int count,
+				     const MPI::Datatype& datatype)
+{
+  (void) MPI_File_read_ordered_begin(mpi_file, buf, count, datatype);
+}
+
+
+inline void 
+MPI::File::Read_ordered_end(void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_read_ordered_end(mpi_file, buf, &status);
+}
+
+
+inline void 
+MPI::File::Read_ordered_end(void* buf, MPI::Status& status)
+{
+  (void) MPI_File_read_ordered_end(mpi_file, buf, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Read_shared(void* buf, int count,
+			      const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_read_shared(mpi_file, buf, count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Read_shared(void* buf, int count,
+			      const MPI::Datatype& datatype,
+			      MPI::Status& status)
+{
+  (void) MPI_File_read_shared(mpi_file, buf, count, datatype, 
+                              &status.mpi_status);
+}
+
+inline void 
+MPI::File::Seek(MPI::Offset offset, int whence)
+{
+  (void) MPI_File_seek(mpi_file, offset, whence);
+}
+
+
+inline void 
+MPI::File::Seek_shared(MPI::Offset offset, int whence)
+{
+  (void) MPI_File_seek_shared(mpi_file, offset, whence);
+}
+
+
+inline void 
+MPI::File::Set_atomicity(bool flag)
+{
+  (void) MPI_File_set_atomicity(mpi_file, flag);
+}
+
+
+inline void 
+MPI::File::Set_info(const MPI::Info& info)
+{
+  (void) MPI_File_set_info(mpi_file, info);
+}
+
+
+inline void 
+MPI::File::Set_size(MPI::Offset size)
+{
+  (void) MPI_File_set_size(mpi_file, size);
+}
+
+
+inline void 
+MPI::File::Set_view(MPI::Offset disp,
+			   const MPI::Datatype& etype,
+			   const MPI::Datatype& filetype,
+			   const char* datarep,
+			   const MPI::Info& info)
+{
+  (void) MPI_File_set_view(mpi_file, disp, etype, filetype, const_cast<char *>(datarep),
+			   info);
+}
+
+
+inline void 
+MPI::File::Sync()
+{
+  (void) MPI_File_sync(mpi_file);
+}
+
+
+inline void 
+MPI::File::Write(const void* buf, int count,
+		      const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write(mpi_file, const_cast<void *>(buf), count, datatype, &status);
+}
+
+
+inline void 
+MPI::File::Write(const void* buf, int count,
+			const MPI::Datatype& datatype,
+			MPI::Status& status)
+{
+  (void) MPI_File_write(mpi_file, const_cast<void *>(buf), count, datatype, 
+                        &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_all(const void* buf, int count,
+			    const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write_all(mpi_file, const_cast<void *>(buf), count, datatype, &status);
+}
+
+
+
+inline void 
+MPI::File::Write_all(const void* buf, int count,
+			    const MPI::Datatype& datatype,
+			    MPI::Status& status)
+{
+  (void) MPI_File_write_all(mpi_file, const_cast<void *>(buf), count, datatype, 
+                            &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_all_begin(const void* buf, int count,
+				  const MPI::Datatype& datatype)
+{
+  (void) MPI_File_write_all_begin(mpi_file, const_cast<void *>(buf), count, datatype);
+}
+
+
+inline void 
+MPI::File::Write_all_end(const void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_write_all_end(mpi_file, const_cast<void *>(buf), &status);
+}
+
+
+inline void 
+MPI::File::Write_all_end(const void* buf, MPI::Status& status)
+{
+  (void) MPI_File_write_all_end(mpi_file, const_cast<void *>(buf), &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_at(MPI::Offset offset,
+			   const void* buf, int count,
+			   const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write_at(mpi_file, offset, const_cast<void *>(buf), count,
+			   datatype, &status);
+}
+
+
+inline void 
+MPI::File::Write_at(MPI::Offset offset,
+			   const void* buf, int count,
+			   const MPI::Datatype& datatype,
+			   MPI::Status& status)
+{
+  (void) MPI_File_write_at(mpi_file, offset, const_cast<void *>(buf), count,
+			   datatype, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_at_all(MPI::Offset offset,
+			       const void* buf, int count,
+			       const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write_at_all(mpi_file, offset, const_cast<void *>(buf), count,
+			       datatype, &status);
+}
+
+
+inline void 
+MPI::File::Write_at_all(MPI::Offset offset,
+			       const void* buf, int count,
+			       const MPI::Datatype& datatype,
+			       MPI::Status& status)
+{
+  (void) MPI_File_write_at_all(mpi_file, offset, const_cast<void *>(buf), count, 
+			       datatype, &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_at_all_begin(MPI::Offset offset,
+				     const void* buf, int count,
+				     const MPI::Datatype& datatype)
+{
+  (void) MPI_File_write_at_all_begin(mpi_file, offset, const_cast<void *>(buf), count,
+				     datatype);
+}
+
+
+inline void 
+MPI::File::Write_at_all_end(const void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_write_at_all_end(mpi_file, const_cast<void *>(buf), &status);
+}
+
+
+inline void 
+MPI::File::Write_at_all_end(const void* buf, MPI::Status& status)
+{
+  (void) MPI_File_write_at_all_end(mpi_file, const_cast<void *>(buf), &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_ordered(const void* buf, int count,
+			      const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write_ordered(mpi_file, const_cast<void *>(buf), count, datatype,
+				&status);
+}
+
+
+inline void 
+MPI::File::Write_ordered(const void* buf, int count,
+				const MPI::Datatype& datatype,
+				MPI::Status& status)
+{
+  (void) MPI_File_write_ordered(mpi_file, const_cast<void *>(buf), count, datatype,
+				&status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_ordered_begin(const void* buf, int count, 
+				    const MPI::Datatype& datatype)
+{
+  (void) MPI_File_write_ordered_begin(mpi_file, const_cast<void *>(buf), count, datatype);
+}
+
+
+inline void 
+MPI::File::Write_ordered_end(const void* buf)
+{
+  MPI_Status status;
+  (void) MPI_File_write_ordered_end(mpi_file, const_cast<void *>(buf), &status);
+}
+
+
+inline void 
+MPI::File::Write_ordered_end(const void* buf,
+				    MPI::Status& status)
+{
+  (void) MPI_File_write_ordered_end(mpi_file, const_cast<void *>(buf), &status.mpi_status);
+}
+
+
+inline void 
+MPI::File::Write_shared(const void* buf, int count,
+			     const MPI::Datatype& datatype)
+{
+  MPI_Status status;
+  (void) MPI_File_write_shared(mpi_file, const_cast<void *>(buf), count,
+			       datatype, &status);
+}
+
+
+inline void 
+MPI::File::Write_shared(const void* buf, int count,
+			     const MPI::Datatype& datatype, MPI::Status& status)
+{
+  (void) MPI_File_write_shared(mpi_file, const_cast<void *>(buf), count,
+			       datatype, &status.mpi_status);
+}
+
+
+inline void
+MPI::File::Set_errhandler(const MPI::Errhandler& errhandler) const
+{
+    (void)MPI_File_set_errhandler(mpi_file, errhandler);
+}
+
+
+inline MPI::Errhandler
+MPI::File::Get_errhandler() const
+{
+    MPI_Errhandler errhandler;
+    MPI_File_get_errhandler(mpi_file, &errhandler);
+    return errhandler;
+}
+
+inline void 
+MPI::File::Call_errhandler(int errorcode) const
+{
+  (void) MPI_File_call_errhandler(mpi_file, errorcode);
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions.h	(revision 97)
@@ -0,0 +1,146 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+//
+// Point-to-Point Communication
+//
+
+void 
+Attach_buffer(void* buffer, int size);
+
+int 
+Detach_buffer(void*& buffer);
+
+//
+// Process Topologies
+//
+
+void
+Compute_dims(int nnodes, int ndims, int dims[]);
+
+//
+// Environmental Inquiry
+//
+
+void 
+Get_processor_name(char* name, int& resultlen);
+
+void
+Get_error_string(int errorcode, char* string, int& resultlen);
+
+int 
+Get_error_class(int errorcode);
+
+double 
+Wtime();
+
+double 
+Wtick();
+
+void
+Init(int& argc, char**& argv);
+
+void
+Init();
+
+void
+InitializeIntercepts();
+
+void
+Real_init();
+
+void
+Finalize();
+
+bool
+Is_initialized();
+
+bool
+Is_finalized();
+
+//
+// External Interfaces
+//
+
+int
+Init_thread(int &argc, char**&argv, int required);
+
+int
+Init_thread(int required);
+
+bool
+Is_thread_main();
+
+int
+Query_thread();
+
+
+//
+// Miscellany
+//
+
+
+void*
+Alloc_mem(Aint size, const Info& info);
+
+
+void
+Free_mem(void* base);
+
+//
+// Process Creation
+//
+
+void
+Close_port(const char* port_name);
+
+
+void
+Lookup_name(const char* service_name, const Info& info, char* port_name);
+
+
+void
+Open_port(const Info& info, char* port_name);
+
+
+void
+Publish_name(const char* service_name, const Info& info, 
+	     const char* port_name);
+
+void 
+Unpublish_name(const char* service_name, const Info& info, 
+	       const char* port_name);
+
+//
+// Profiling
+//
+
+void
+Pcontrol(const int level, ...);
+
+void
+Get_version(int& version, int& subversion);
+
+MPI::Aint
+Get_address(void* location);
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/functions_inln.h	(revision 97)
@@ -0,0 +1,272 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+#include <string.h>
+
+//
+// Point-to-Point Communication
+//
+
+inline void 
+MPI::Attach_buffer(void* buffer, int size)
+{
+  (void)MPI_Buffer_attach(buffer, size);
+}
+
+inline int 
+MPI::Detach_buffer(void*& buffer)
+{
+  int size;
+  (void)MPI_Buffer_detach(&buffer, &size);
+  return size;
+}
+
+//
+// Process Topologies
+//
+
+inline void
+MPI::Compute_dims(int nnodes, int ndims, int dims[])
+{
+  (void)MPI_Dims_create(nnodes, ndims, dims);
+}
+
+
+//
+// Environmental Inquiry
+//
+
+inline void 
+MPI::Get_processor_name(char* name, int& resultlen)
+{
+  (void)MPI_Get_processor_name(name, &resultlen);
+}
+
+inline void
+MPI::Get_error_string(int errorcode, char* string, int& resultlen)
+{
+  (void)MPI_Error_string(errorcode, string, &resultlen);
+}
+
+inline int 
+MPI::Get_error_class(int errorcode) 
+{
+  int errorclass;
+  (void)MPI_Error_class(errorcode, &errorclass);
+  return errorclass;
+}
+
+inline double 
+MPI::Wtime()
+{
+  return (MPI_Wtime());
+}
+
+inline double 
+MPI::Wtick()
+{
+  return (MPI_Wtick());
+}
+
+inline void
+MPI::Real_init()
+{
+    MPI::InitializeIntercepts();
+}
+
+
+inline void
+MPI::Init(int& argc, char**& argv)
+{
+  (void)MPI_Init(&argc, &argv);
+  Real_init();
+}
+
+inline void
+MPI::Init()
+{
+  (void)MPI_Init(0, 0);
+  Real_init();
+}
+
+inline void
+MPI::Finalize()
+{
+  (void)MPI_Finalize();
+}
+
+inline bool
+MPI::Is_initialized()
+{
+  int t;
+  (void)MPI_Initialized(&t);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+inline bool
+MPI::Is_finalized()
+{
+  int t;
+  (void)MPI_Finalized(&t);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+
+//
+// External Interfaces
+//
+
+inline int
+MPI::Init_thread(int required)
+{
+  int provided;
+  (void) MPI_Init_thread(0, NULL, required, &provided);
+  Real_init();
+  return provided;
+}
+
+
+inline int
+MPI::Init_thread(int& argc, char**& argv, int required)
+{
+  int provided;
+  (void) MPI_Init_thread(&argc, &argv, required, &provided);
+  Real_init();
+  return provided;
+}
+
+
+inline bool
+MPI::Is_thread_main()
+{
+  int flag;
+  (void) MPI_Is_thread_main(&flag);
+  return OPAL_INT_TO_BOOL(flag == 1);
+}
+
+
+inline int
+MPI::Query_thread()
+{
+  int provided;
+  (void) MPI_Query_thread(&provided);
+  return provided;
+}
+
+
+//
+// Miscellany
+//
+
+
+inline void*
+MPI::Alloc_mem(MPI::Aint size, const MPI::Info& info) 
+{
+  void* baseptr;
+  (void) MPI_Alloc_mem(size, info, &baseptr);
+  return baseptr;
+}
+
+
+inline void
+MPI::Free_mem(void* base)
+{
+  (void) MPI_Free_mem(base);
+}
+
+
+//
+// Process Creation
+//
+
+
+inline void
+MPI::Close_port(const char* port_name) 
+{
+  (void) MPI_Close_port(const_cast<char *>(port_name));
+}
+
+
+inline void
+MPI::Lookup_name(const char * service_name, 
+			const MPI::Info& info,
+			char* port_name)
+{
+  (void) MPI_Lookup_name(const_cast<char *>(service_name), info, port_name);
+}
+
+
+inline void
+MPI::Open_port(const MPI::Info& info, char* port_name)
+{
+  (void) MPI_Open_port(info, port_name);
+}
+
+
+inline void
+MPI::Publish_name(const char* service_name, 
+			 const MPI::Info& info,
+			 const char* port_name)
+{
+  (void) MPI_Publish_name(const_cast<char *>(service_name), info,
+                          const_cast<char *>(port_name));
+}
+
+
+inline void
+MPI::Unpublish_name(const char* service_name, 
+			   const MPI::Info& info,
+			   const char* port_name)
+{
+  (void)MPI_Unpublish_name(const_cast<char *>(service_name), info,
+                           const_cast<char *>(port_name));
+}
+
+
+
+//
+// Profiling
+//
+
+inline void
+MPI::Pcontrol(const int level, ...)
+{
+  va_list ap;
+  va_start(ap, level);
+ 
+  (void)MPI_Pcontrol(level, ap);
+  va_end(ap);
+}
+
+
+inline void
+MPI::Get_version(int& version, int& subversion)
+{
+  (void)MPI_Get_version(&version, &subversion);
+}
+
+
+inline MPI::Aint
+MPI::Get_address(void* location)
+{
+  MPI::Aint ret;
+  MPI_Get_address(location, &ret);
+  return ret;
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group.h	(revision 97)
@@ -0,0 +1,124 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Group {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Group;
+#endif
+public:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction
+  inline Group() { }
+  inline Group(MPI_Group i) : pmpi_group(i) { }
+  // copy
+  inline Group(const Group& g) : pmpi_group(g.pmpi_group) { }
+
+  inline Group(const PMPI::Group& g) : pmpi_group(g) { }
+
+  inline virtual ~Group() {}
+
+  Group& operator=(const Group& g) {
+    pmpi_group = g.pmpi_group; return *this;
+  }
+
+  // comparison
+  inline bool operator== (const Group &a) {
+    return (bool)(pmpi_group == a.pmpi_group);
+  }
+  inline bool operator!= (const Group &a) { 
+    return (bool)!(*this == a);
+  }
+ 
+  // inter-language operability
+  Group& operator= (const MPI_Group &i) { pmpi_group = i; return *this; }
+  inline operator MPI_Group () const { return pmpi_group.mpi(); }
+  //  inline operator MPI_Group* () const { return pmpi_group; }
+  inline operator const PMPI::Group&() const { return pmpi_group; }
+
+  const PMPI::Group& pmpi() { return pmpi_group; }
+#else
+
+  // construction
+  inline Group() : mpi_group(MPI_GROUP_NULL) { }
+  inline Group(MPI_Group i) : mpi_group(i) { }
+
+  // copy
+  inline Group(const Group& g) : mpi_group(g.mpi_group) { }
+
+  inline virtual ~Group() {}
+
+  inline Group& operator=(const Group& g) { mpi_group = g.mpi_group; return *this; }
+
+  // comparison
+  inline bool operator== (const Group &a) { return (bool)(mpi_group == a.mpi_group); }
+  inline bool operator!= (const Group &a) { return (bool)!(*this == a); }
+ 
+  // inter-language operability
+  inline Group& operator= (const MPI_Group &i) { mpi_group = i; return *this; }
+  inline operator MPI_Group () const { return mpi_group; }
+  //  inline operator MPI_Group* () const { return (MPI_Group*)&mpi_group; }
+
+  inline MPI_Group mpi() const { return mpi_group; }
+
+#endif
+
+  //
+  // Groups, Contexts, and Communicators
+  //
+
+  virtual int Get_size() const;
+  
+  virtual int Get_rank() const;
+  
+  static void Translate_ranks (const Group& group1, int n, const int ranks1[], 
+			       const Group& group2, int ranks2[]);
+  
+  static int Compare(const Group& group1, const Group& group2);
+  
+  static Group Union(const Group &group1, const Group &group2);
+  
+  static Group Intersect(const Group &group1, const Group &group2);
+  
+  static Group Difference(const Group &group1, const Group &group2);
+  
+  virtual Group Incl(int n, const int ranks[]) const;
+  
+  virtual Group Excl(int n, const int ranks[]) const;
+  
+  virtual Group Range_incl(int n, const int ranges[][3]) const;
+  
+  virtual Group Range_excl(int n, const int ranges[][3]) const;
+  
+  virtual void Free();
+
+protected:
+#if ! 0 /* OMPI_ENABLE_MPI_PROFILING */
+  MPI_Group mpi_group;
+#endif
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Group pmpi_group;
+#endif
+
+};
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/group_inln.h	(revision 97)
@@ -0,0 +1,128 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+//
+// Groups, Contexts, and Communicators
+//
+
+inline int
+MPI::Group::Get_size() const
+{
+  int size;
+  (void)MPI_Group_size(mpi_group, &size);
+  return size;
+}
+
+inline int
+MPI::Group::Get_rank() const 
+{
+  int rank;
+  (void)MPI_Group_rank(mpi_group, &rank);
+  return rank;
+}
+
+inline void
+MPI::Group::Translate_ranks (const MPI::Group& group1, int n,
+				    const int ranks1[], 
+				    const MPI::Group& group2, int ranks2[])
+{
+  (void)MPI_Group_translate_ranks(group1, n, const_cast<int *>(ranks1), group2, const_cast<int *>(ranks2));
+}
+
+inline int
+MPI::Group::Compare(const MPI::Group& group1, const MPI::Group& group2)
+{
+  int result;
+  (void)MPI_Group_compare(group1, group2, &result);
+  return result;
+}
+
+inline MPI::Group
+MPI::Group::Union(const MPI::Group &group1, const MPI::Group &group2)
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_union(group1, group2, &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Intersect(const MPI::Group &group1, const MPI::Group &group2)
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_intersection( group1,  group2, &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Difference(const MPI::Group &group1, const MPI::Group &group2)
+{
+  MPI_Group newgroup;  
+  (void)MPI_Group_difference(group1, group2, &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Incl(int n, const int ranks[]) const
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_incl(mpi_group, n, const_cast<int *>(ranks), &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Excl(int n, const int ranks[]) const
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_excl(mpi_group, n, const_cast<int *>(ranks), &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Range_incl(int n, const int ranges[][3]) const
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_range_incl(mpi_group, n,
+#if OMPI_CXX_SUPPORTS_2D_CONST_CAST
+                             const_cast<int(*)[3]>(ranges), 
+#else
+                             (int(*)[3]) ranges,
+#endif
+                             &newgroup);
+  return newgroup;
+}
+
+inline MPI::Group
+MPI::Group::Range_excl(int n, const int ranges[][3]) const
+{
+  MPI_Group newgroup;
+  (void)MPI_Group_range_excl(mpi_group, n,
+#if OMPI_CXX_SUPPORTS_2D_CONST_CAST
+                             const_cast<int(*)[3]>(ranges),
+#else
+                             (int(*)[3]) ranges,
+#endif
+                             &newgroup);
+  return newgroup;
+}
+
+inline void
+MPI::Group::Free()
+{
+  (void)MPI_Group_free(&mpi_group);
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info.h	(revision 97)
@@ -0,0 +1,103 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Info {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Info;
+#endif
+  friend class MPI::Comm; //so I can access pmpi_info data member in comm.cc
+  friend class MPI::Request; //and also from request.cc
+
+public:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction / destruction
+  Info() { }
+  virtual ~Info() {}
+
+
+  // copy / assignment
+  Info(const Info& data) : pmpi_info(data.pmpi_info) { }
+
+  Info(MPI_Info i) : pmpi_info(i) { }
+
+  Info& operator=(const Info& data) {
+    pmpi_info = data.pmpi_info; return *this; }
+
+  // comparison, don't need for info
+
+  // inter-language operability
+  Info& operator= (const MPI_Info &i) {
+    pmpi_info = i; return *this; }
+  operator MPI_Info () const { return pmpi_info; }
+  //  operator MPI_Info* () const { return pmpi_info; }
+  operator const PMPI::Info&() const { return pmpi_info; }
+
+
+#else
+
+  Info() : mpi_info(MPI_INFO_NULL) { }
+  // copy
+  Info(const Info& data) : mpi_info(data.mpi_info) { }
+
+  Info(MPI_Info i) : mpi_info(i) { }
+
+  virtual ~Info() {}
+
+  Info& operator=(const Info& data) {
+    mpi_info = data.mpi_info; return *this; }
+
+  // comparison, don't need for info
+
+  // inter-language operability
+  Info& operator= (const MPI_Info &i) {
+    mpi_info = i; return *this; }
+  operator MPI_Info () const { return mpi_info; }
+  //  operator MPI_Info* () const { return (MPI_Info*)&mpi_info; }
+
+#endif
+
+  static Info Create();
+
+  virtual void Delete(const char* key);
+
+  virtual Info Dup() const; 
+
+  virtual void Free();
+
+  virtual bool Get(const char* key, int valuelen, char* value) const;
+
+  virtual int Get_nkeys() const;
+
+  virtual void Get_nthkey(int n, char* key) const;
+
+  virtual bool Get_valuelen(const char* key, int& valuelen) const;
+
+  virtual void Set(const char* key, const char* value);
+
+protected:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Info pmpi_info;
+#else
+  MPI_Info mpi_info;
+#endif
+
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/info_inln.h	(revision 97)
@@ -0,0 +1,83 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+inline MPI::Info 
+MPI::Info::Create()
+{
+  MPI_Info newinfo;
+  (void) MPI_Info_create(&newinfo);
+  return newinfo;
+}
+
+inline void
+MPI::Info::Delete(const char* key)
+{
+   (void)MPI_Info_delete(mpi_info, const_cast<char *>(key));
+}
+
+inline MPI::Info 
+MPI::Info::Dup() const
+{
+  MPI_Info newinfo;
+  (void)MPI_Info_dup(mpi_info, &newinfo);
+  return newinfo;
+}
+
+inline void
+MPI::Info::Free()
+{
+  (void) MPI_Info_free(&mpi_info);
+}
+
+inline bool
+MPI::Info::Get(const char* key, int valuelen, char* value) const
+{
+  int flag;
+  (void)MPI_Info_get(mpi_info, const_cast<char *>(key), valuelen, value, &flag);
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline int
+MPI::Info::Get_nkeys() const
+{
+  int nkeys;
+  MPI_Info_get_nkeys(mpi_info, &nkeys);
+  return nkeys;
+}
+
+inline void
+MPI::Info::Get_nthkey(int n, char* key) const
+{
+  (void) MPI_Info_get_nthkey(mpi_info, n, key);
+}
+
+inline bool 
+MPI::Info::Get_valuelen(const char* key, int& valuelen) const
+{
+  int flag;
+  (void) MPI_Info_get_valuelen(mpi_info, const_cast<char *>(key), &valuelen, &flag);
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline void
+MPI::Info::Set(const char* key, const char* value)
+{
+  (void) MPI_Info_set(mpi_info, const_cast<char *>(key), const_cast<char *>(value));
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm.h	(revision 97)
@@ -0,0 +1,86 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Intercomm : public Comm {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Intercomm;
+#endif
+public:
+
+  // construction
+  Intercomm() : Comm(MPI_COMM_NULL) { }
+  // copy
+  Intercomm(const Comm_Null& data) : Comm(data) { }
+  // inter-language operability
+  Intercomm(MPI_Comm data) : Comm(data) { }
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  // copy
+  Intercomm(const Intercomm& data) : Comm(data), pmpi_comm(data.pmpi_comm) { }
+  Intercomm(const PMPI::Intercomm& d) : 
+    Comm((const PMPI::Comm&)d), pmpi_comm(d) { }
+
+  // assignment
+  Intercomm& operator=(const Intercomm& data) {
+    Comm::operator=(data);
+    pmpi_comm = data.pmpi_comm; return *this; }
+  Intercomm& operator=(const Comm_Null& data) {
+    Comm::operator=(data);
+    Intercomm& ic = (Intercomm&)data;
+    pmpi_comm = ic.pmpi_comm; return *this; }
+  // inter-language operability
+  Intercomm& operator=(const MPI_Comm& data) {
+    Comm::operator=(data);
+    pmpi_comm = PMPI::Intercomm(data); return *this; }
+#else
+  // copy
+  Intercomm(const Intercomm& data) : Comm(data.mpi_comm) { }
+  // assignment
+  Intercomm& operator=(const Intercomm& data) {
+    mpi_comm = data.mpi_comm; return *this; }
+  Intercomm& operator=(const Comm_Null& data) {
+    mpi_comm = data; return *this; }
+  // inter-language operability
+  Intercomm& operator=(const MPI_Comm& data) {
+    mpi_comm = data; return *this; } 
+
+#endif
+  
+
+  //
+  // Groups, Contexts, and Communicators
+  //
+
+  Intercomm Dup() const;
+
+  virtual Intercomm& Clone() const;
+
+  virtual int Get_remote_size() const;
+
+  virtual Group Get_remote_group() const;
+
+  virtual Intracomm Merge(bool high);
+
+  virtual Intercomm Create(const Group& group) const;
+
+  virtual Intercomm Split(int color, int key) const;
+
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intercomm_inln.h	(revision 97)
@@ -0,0 +1,80 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+inline MPI::Intercomm
+MPI::Intercomm::Dup() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  return newcomm;
+}
+
+inline MPI::Intercomm&
+MPI::Intercomm::Clone() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  MPI::Intercomm* dup = new MPI::Intercomm(newcomm);
+  return *dup;
+}
+
+inline int
+MPI::Intercomm::Get_remote_size() const 
+{
+  int size;
+  (void)MPI_Comm_remote_size(mpi_comm, &size);
+  return size;
+}
+
+inline MPI::Group
+MPI::Intercomm::Get_remote_group() const 
+{
+  MPI_Group group;
+  (void)MPI_Comm_remote_group(mpi_comm, &group);
+  return group;
+}
+
+inline MPI::Intracomm
+MPI::Intercomm::Merge(bool high)
+{
+  MPI_Comm newcomm;
+  (void)MPI_Intercomm_merge(mpi_comm, (int)high, &newcomm);
+  return newcomm;
+}
+
+
+//
+// Extended Collective Operations
+//
+
+inline MPI::Intercomm
+MPI::Intercomm::Create(const Group& group) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_create(mpi_comm, (MPI_Group) group, &newcomm);
+  return newcomm;
+}
+
+inline MPI::Intercomm
+MPI::Intercomm::Split(int color, int key) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_split(mpi_comm, color, key, &newcomm);
+  return newcomm;
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm.h	(revision 97)
@@ -0,0 +1,166 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Intracomm : public Comm {
+public:
+
+  // construction
+  Intracomm() { }
+  // copy
+  Intracomm(const Comm_Null& data) : Comm(data) { }
+  // inter-language operability
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //NOTE: it is extremely important that Comm(data) happens below
+  //  because there is a not only pmpi_comm in this Intracomm but
+  //  there is also a pmpi_comm in the inherited Comm part. Both
+  //  of these pmpi_comm's need to be initialized with the same
+  //  MPI_Comm object. Also the assignment operators must take this
+  //  into account.
+  Intracomm(const Intracomm& data) : Comm(data), pmpi_comm(data) { }
+
+  Intracomm(MPI_Comm data) : Comm(data), pmpi_comm(data) { }
+  
+  Intracomm(const PMPI::Intracomm& data) 
+    : Comm((const PMPI::Comm&)data), pmpi_comm(data) { }
+
+  // assignment
+  Intracomm& operator=(const Intracomm& data) {
+    Comm::operator=(data);
+    pmpi_comm = data.pmpi_comm; 
+    return *this;
+  }
+  Intracomm& operator=(const Comm_Null& data) {
+    Comm::operator=(data);
+    pmpi_comm = (PMPI::Intracomm)data; return *this;
+  }
+  // inter-language operability
+  Intracomm& operator=(const MPI_Comm& data) {
+    Comm::operator=(data);
+    pmpi_comm = data;
+    return *this;
+  }
+
+#else
+  Intracomm(const Intracomm& data) : Comm(data.mpi_comm) { }
+
+  inline Intracomm(MPI_Comm data);
+
+  // assignment
+  Intracomm& operator=(const Intracomm& data) {
+    mpi_comm = data.mpi_comm; return *this;
+  }
+
+  Intracomm& operator=(const Comm_Null& data) {
+    mpi_comm = data; return *this;
+  }
+
+  // inter-language operability
+  Intracomm& operator=(const MPI_Comm& data) {
+    mpi_comm = data; return *this; } 
+
+#endif
+  
+  //
+  // Collective Communication
+  //
+  // All the rest are up in comm.h -- Scan and Exscan are not defined
+  // in intercomm's, so they're down here in Intracomm.
+  //
+  virtual void
+  Scan(const void *sendbuf, void *recvbuf, int count, 
+       const Datatype & datatype, const Op & op) const;
+
+  virtual void
+  Exscan(const void *sendbuf, void *recvbuf, int count,
+	 const Datatype & datatype, const Op & op) const;
+
+  //
+  // Communicator maintenance
+  //
+
+  Intracomm Dup() const;
+  
+  virtual Intracomm& Clone() const;
+
+  virtual Intracomm
+  Create(const Group& group) const;
+  
+  virtual Intracomm
+  Split(int color, int key) const;
+
+  virtual Intercomm
+  Create_intercomm(int local_leader, const Comm& peer_comm,
+		   int remote_leader, int tag) const;
+  
+  virtual Cartcomm
+  Create_cart(int ndims, const int dims[],
+	      const bool periods[], bool reorder) const;
+  
+  virtual Graphcomm
+  Create_graph(int nnodes, const int index[],
+	       const int edges[], bool reorder) const;
+
+
+  //
+  // Process Creation and Management
+  //
+ 
+  virtual Intercomm Accept(const char* port_name, const Info& info, int root)
+    const;
+
+  virtual Intercomm Connect(const char* port_name, const Info& info, int root)
+    const;
+
+  virtual Intercomm Spawn(const char* command, const char* argv[],
+                          int maxprocs, const Info& info, int root) const;
+
+  virtual Intercomm Spawn(const char* command, const char* argv[],
+                          int maxprocs, const Info& info,
+                          int root, int array_of_errcodes[]) const;
+
+  virtual Intercomm Spawn_multiple(int count, const char* array_of_commands[],
+                                   const char** array_of_argv[],
+                                   const int array_of_maxprocs[],
+                                   const Info array_of_info[], int root);
+
+  virtual Intercomm Spawn_multiple(int count, const char* array_of_commands[],
+                                   const char** array_of_argv[],
+                                   const int array_of_maxprocs[],
+                                   const Info array_of_info[], int root,
+                                   int array_of_errcodes[]);
+
+
+  //#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  virtual const PMPI::Comm& get_pmpi_comm() const { return pmpi_comm; }
+  //#endif
+protected:
+
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Intracomm pmpi_comm;
+#endif
+
+  // Convert an array of p_nbr Info object into an array of MPI_Info.
+  // A pointer to the allocated array is returned and must be
+  // eventually deleted.
+  static inline MPI_Info *convert_info_to_mpi_info(int p_nbr, 
+                                                   const Info p_info_tbl[]);
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/intracomm_inln.h	(revision 97)
@@ -0,0 +1,240 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+inline
+MPI::Intracomm::Intracomm(MPI_Comm data) {
+  int flag = 0;
+  if (MPI::Is_initialized() && (data != MPI_COMM_NULL)) {
+    (void)MPI_Comm_test_inter(data, &flag);
+    if (flag) {
+      mpi_comm = MPI_COMM_NULL;
+    } else {
+      mpi_comm = data;
+    }
+  }
+  else {
+    mpi_comm = data;
+  }
+}
+
+inline void
+MPI::Intracomm::Scan(const void *sendbuf, void *recvbuf, int count, 
+     const MPI::Datatype & datatype, const MPI::Op& op) const
+{
+  (void)MPI_Scan(const_cast<void *>(sendbuf), recvbuf, count, datatype, op, mpi_comm);
+}
+
+inline void
+MPI::Intracomm::Exscan(const void *sendbuf, void *recvbuf, int count,
+			      const MPI::Datatype & datatype, 
+			      const MPI::Op& op) const
+{
+  (void)MPI_Exscan(const_cast<void *>(sendbuf), recvbuf, count, datatype, op, mpi_comm);
+}
+
+inline MPI::Intracomm
+MPI::Intracomm::Dup() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  return newcomm;
+}
+
+inline MPI::Intracomm&
+MPI::Intracomm::Clone() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  MPI::Intracomm* dup = new MPI::Intracomm(newcomm);
+  return *dup;
+}
+
+inline MPI::Intracomm
+MPI::Intracomm::Create(const MPI::Group& group) const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_create(mpi_comm, group, &newcomm);
+  return newcomm;
+}
+
+inline MPI::Intracomm
+MPI::Intracomm::Split(int color, int key) const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_split(mpi_comm, color, key, &newcomm);
+  return newcomm;
+}
+
+
+
+inline MPI::Intercomm
+MPI::Intracomm::Create_intercomm(int local_leader,
+					const MPI::Comm& peer_comm,
+					int remote_leader, int tag) const
+{
+  MPI_Comm newintercomm;
+  (void)MPI_Intercomm_create(mpi_comm, local_leader, peer_comm,
+			     remote_leader, tag, &newintercomm); 
+  return newintercomm;
+}
+
+inline MPI::Cartcomm
+MPI::Intracomm::Create_cart(int ndims, const int dims[],
+				   const bool periods[], bool reorder) const
+{
+  int *int_periods = new int [ndims];
+  for (int i=0; i<ndims; i++)
+    int_periods[i] = (int) periods[i];
+  
+  MPI_Comm newcomm;
+  (void)MPI_Cart_create(mpi_comm, ndims, const_cast<int *>(dims), 
+		      int_periods, (int)reorder, &newcomm);
+  delete [] int_periods;
+  return newcomm;
+}
+
+inline MPI::Graphcomm
+MPI::Intracomm::Create_graph(int nnodes, const int index[],
+				    const int edges[], bool reorder) const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Graph_create(mpi_comm, nnodes, const_cast<int *>(index), 
+                         const_cast<int *>(edges), (int)reorder, &newcomm);
+  return newcomm;
+}
+
+
+//
+// Process Creation and Management
+//
+
+inline MPI::Intercomm
+MPI::Intracomm::Accept(const char* port_name, 
+			      const MPI::Info& info,
+			      int root) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_accept(const_cast<char *>(port_name), info, root, mpi_comm,
+			 &newcomm);
+  return newcomm;
+}
+
+
+inline MPI::Intercomm
+MPI::Intracomm::Connect(const char* port_name,
+			       const MPI::Info& info,
+			       int root) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_connect(const_cast<char *>(port_name), info, root, mpi_comm,
+			  &newcomm);
+  return newcomm;
+}
+
+
+inline MPI::Intercomm
+MPI::Intracomm::Spawn(const char* command, const char* argv[],
+			     int maxprocs, const MPI::Info& info, 
+			     int root) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_spawn(const_cast<char *>(command), const_cast<char **>(argv), maxprocs,
+			info, root, mpi_comm, &newcomm, 
+			(int *)MPI_ERRCODES_IGNORE);
+  return newcomm;
+}
+
+
+inline MPI::Intercomm
+MPI::Intracomm::Spawn(const char* command, const char* argv[],
+                             int maxprocs, const MPI::Info& info,
+                             int root, int array_of_errcodes[]) const
+{
+  MPI_Comm newcomm;
+  (void) MPI_Comm_spawn(const_cast<char *>(command), const_cast<char **>(argv), maxprocs,
+                        info, root, mpi_comm, &newcomm, 
+			array_of_errcodes);
+  return newcomm;
+}
+
+
+inline MPI::Intercomm
+MPI::Intracomm::Spawn_multiple(int count, 
+				      const char* array_of_commands[],
+				      const char** array_of_argv[],
+				      const int array_of_maxprocs[],
+				      const Info array_of_info[], int root)
+{
+  MPI_Comm newcomm;
+  MPI_Info *const array_of_mpi_info = 
+      convert_info_to_mpi_info(count, array_of_info);
+
+  MPI_Comm_spawn_multiple(count, const_cast<char **>(array_of_commands), 
+			  const_cast<char ***>(array_of_argv), 
+                          const_cast<int *>(array_of_maxprocs),
+			  array_of_mpi_info, root,
+			  mpi_comm, &newcomm, (int *)MPI_ERRCODES_IGNORE);
+  delete[] array_of_mpi_info;
+  return newcomm;
+}
+
+inline MPI_Info *
+MPI::Intracomm::convert_info_to_mpi_info(int p_nbr, const Info p_info_tbl[])
+{
+   MPI_Info *const mpi_info_tbl = new MPI_Info [p_nbr];
+
+   for (int i_tbl=0; i_tbl < p_nbr; i_tbl++) {
+       mpi_info_tbl[i_tbl] = p_info_tbl[i_tbl];
+   }
+
+   return mpi_info_tbl;
+}
+
+inline MPI::Intercomm
+MPI::Intracomm::Spawn_multiple(int count,
+                                      const char* array_of_commands[],
+                                      const char** array_of_argv[],
+                                      const int array_of_maxprocs[],
+                                      const Info array_of_info[], int root,
+				      int array_of_errcodes[])
+{
+  MPI_Comm newcomm;
+  MPI_Info *const array_of_mpi_info = 
+      convert_info_to_mpi_info(count, array_of_info);
+
+  MPI_Comm_spawn_multiple(count, const_cast<char **>(array_of_commands), 
+                          const_cast<char ***>(array_of_argv), 
+                          const_cast<int *>(array_of_maxprocs),
+                          array_of_mpi_info, root,
+                          mpi_comm, &newcomm, array_of_errcodes);
+  delete[] array_of_mpi_info;
+  return newcomm;
+}
+
+
+
+
+
+
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/mpicxx.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/mpicxx.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/mpicxx.h	(revision 97)
@@ -0,0 +1,304 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+#ifndef MPIPP_H
+#define MPIPP_H
+
+// 
+// Let's ensure that we're really in C++, and some errant programmer
+// hasn't included <mpicxx.h> just "for completeness"
+//
+
+#if defined(__cplusplus) || defined(c_plusplus) 
+
+// do not include ompi_config.h.  it will smash free() as a symbol
+#include <mpi.h>
+
+// we include all this here so that we escape the silly namespacing issues
+#include <map>
+#include <utility>
+
+#include <stdarg.h>
+
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE && !defined(OMPI_IGNORE_CXX_SEEK) & OMPI_WANT_MPI_CXX_SEEK
+// We need to include the header files that define SEEK_* or use them
+// in ways that require them to be #defines so that if the user
+// includes them later, the double inclusion logic in the headers will
+// prevent trouble from occuring.
+
+// include so that we can smash SEEK_* properly
+#include <stdio.h>
+// include because on Linux, there is one place that assumes SEEK_* is
+// a #define (it's used in an enum).
+#include <iostream>
+
+static const int ompi_stdio_seek_set = SEEK_SET;
+static const int ompi_stdio_seek_cur = SEEK_CUR;
+static const int ompi_stdio_seek_end = SEEK_END;
+
+// smash SEEK_* #defines
+#ifdef SEEK_SET
+#undef SEEK_SET
+#undef SEEK_CUR
+#undef SEEK_END
+#endif
+
+// make globally scoped constants to replace smashed #defines
+static const int SEEK_SET = ompi_stdio_seek_set;
+static const int SEEK_CUR = ompi_stdio_seek_cur;
+static const int SEEK_END = ompi_stdio_seek_end;
+#endif
+
+#ifdef OMPI_HAVE_SYS_SYNCH_H
+// Solaris threads.h pulls in sys/synch.h which in certain versions 
+// defines LOCK_SHARED.  
+
+// include so that we can smash LOCK_SHARED
+#include <sys/synch.h>
+
+// a user app may be included on a system with an older version
+// sys/synch.h
+#ifdef LOCK_SHARED
+static const int ompi_synch_lock_shared = LOCK_SHARED;
+
+// smash LOCK_SHARED #defines
+#undef LOCK_SHARED
+
+// make globally scoped constants to replace smashed #defines
+static const int LOCK_SHARED = ompi_synch_lock_shared;
+#endif
+#endif
+
+// forward declare so that we can still do inlining
+struct opal_mutex_t;
+
+// See lengthy explanation in intercepts.cc about this function.
+extern "C" void
+ompi_mpi_cxx_op_intercept(void *invec, void *outvec, int *len, 
+                          MPI_Datatype *datatype, MPI_User_function *fn);
+
+extern "C" void
+ompi_mpi_cxx_comm_errhandler_invoke(ompi_errhandler_t *c_errhandler,
+                                    MPI_Comm *mpi_comm, int *err, 
+                                    const char *message);
+extern "C" void
+ompi_mpi_cxx_win_errhandler_invoke(ompi_errhandler_t *c_errhandler,
+                                   MPI_Win *mpi_comm, int *err,
+                                   const char *message);
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+extern "C" void
+ompi_mpi_cxx_file_errhandler_invoke(ompi_errhandler_t *c_errhandler,
+                                    MPI_File *mpi_comm, int *err,
+                                    const char *message);
+#endif
+
+//used for attr intercept functions
+enum CommType { eIntracomm, eIntercomm, eCartcomm, eGraphcomm};
+
+extern "C" int
+ompi_mpi_cxx_comm_copy_attr_intercept(MPI_Comm oldcomm, int keyval, 
+                                      void *extra_state, void *attribute_val_in, 
+                                      void *attribute_val_out, int *flag,
+                                      MPI_Comm newcomm);
+extern "C" int
+ompi_mpi_cxx_comm_delete_attr_intercept(MPI_Comm comm, int keyval, 
+                                        void *attribute_val, void *extra_state);
+
+extern "C" int
+ompi_mpi_cxx_type_copy_attr_intercept(MPI_Datatype oldtype, int keyval, 
+                                      void *extra_state, void *attribute_val_in, 
+                                      void *attribute_val_out, int *flag);
+extern "C" int
+ompi_mpi_cxx_type_delete_attr_intercept(MPI_Datatype type, int keyval, 
+                                        void *attribute_val, void *extra_state);
+
+extern "C" int
+ompi_mpi_cxx_win_copy_attr_intercept(MPI_Win oldwin, int keyval, 
+                                      void *extra_state, void *attribute_val_in, 
+                                      void *attribute_val_out, int *flag);
+extern "C" int
+ompi_mpi_cxx_win_delete_attr_intercept(MPI_Win win, int keyval, 
+                                        void *attribute_val, void *extra_state);
+
+
+
+//
+// MPI generalized request intercepts
+//
+
+extern "C" int 
+ompi_mpi_cxx_grequest_query_fn_intercept(void *state, MPI_Status *status);
+extern "C" int 
+ompi_mpi_cxx_grequest_free_fn_intercept(void *state);
+extern "C" int 
+ompi_mpi_cxx_grequest_cancel_fn_intercept(void *state, int canceled);
+
+/**
+ * Windows bool type is not any kind of integer. Special care should
+ * be taken in order to cast it correctly.
+ */
+#if defined(WIN32) || defined(_WIN32) || defined(WIN64)
+#define OPAL_INT_TO_BOOL(VALUE)  ((VALUE) != 0 ? true : false)
+#else
+#define OPAL_INT_TO_BOOL(VALUE)  ((bool)(VALUE))
+#endif  /* defined(WIN32) || defined(_WIN32) || defined(WIN64) */
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+#include "ompi/mpi/cxx/pmpicxx.h"
+#endif
+
+namespace MPI {
+
+#if ! OMPI_HAVE_CXX_EXCEPTION_SUPPORT
+	extern int mpi_errno;
+#endif
+
+  class Comm_Null;
+  class Comm;
+  class Intracomm;
+  class Intercomm;
+  class Graphcomm;
+  class Cartcomm;
+  class Datatype;
+  class Errhandler;
+  class Group;
+  class Op;
+  class Request;
+  class Grequest;
+  class Status;
+  class Info;
+  class Win;
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+  class File;
+#endif
+
+  typedef MPI_Aint Aint;
+  typedef MPI_Offset Offset;
+
+#ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
+#include "ompi/mpi/cxx/constants.h"
+#include "ompi/mpi/cxx/functions.h"
+#include "ompi/mpi/cxx/datatype.h"
+#else
+#include "openmpi/ompi/mpi/cxx/constants.h"
+#include "openmpi/ompi/mpi/cxx/functions.h"
+#include "openmpi/ompi/mpi/cxx/datatype.h"
+#endif
+
+  typedef void User_function(const void* invec, void* inoutvec, int len,
+			     const Datatype& datatype);
+
+    /* Prevent needing a -I${prefix}/include/openmpi, as it seems to
+       really annoy peope that don't use the wrapper compilers and is
+       no longer worth the fight of getting right... */
+#ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
+#include "ompi/mpi/cxx/exception.h"
+#include "ompi/mpi/cxx/op.h"
+#include "ompi/mpi/cxx/status.h"
+#include "ompi/mpi/cxx/request.h"   //includes class Prequest
+#include "ompi/mpi/cxx/group.h" 
+#include "ompi/mpi/cxx/comm.h"
+#include "ompi/mpi/cxx/win.h"
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+#include "ompi/mpi/cxx/file.h"
+#endif
+#include "ompi/mpi/cxx/errhandler.h"
+#include "ompi/mpi/cxx/intracomm.h"
+#include "ompi/mpi/cxx/topology.h"  //includes Cartcomm and Graphcomm
+#include "ompi/mpi/cxx/intercomm.h"
+#include "ompi/mpi/cxx/info.h"
+#else
+#include "openmpi/ompi/mpi/cxx/exception.h"
+#include "openmpi/ompi/mpi/cxx/op.h"
+#include "openmpi/ompi/mpi/cxx/status.h"
+#include "openmpi/ompi/mpi/cxx/request.h"   //includes class Prequest
+#include "openmpi/ompi/mpi/cxx/group.h" 
+#include "openmpi/ompi/mpi/cxx/comm.h"
+#include "openmpi/ompi/mpi/cxx/win.h"
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+#include "openmpi/ompi/mpi/cxx/file.h"
+#endif
+#include "openmpi/ompi/mpi/cxx/errhandler.h"
+#include "openmpi/ompi/mpi/cxx/intracomm.h"
+#include "openmpi/ompi/mpi/cxx/topology.h"  //includes Cartcomm and Graphcomm
+#include "openmpi/ompi/mpi/cxx/intercomm.h"
+#include "openmpi/ompi/mpi/cxx/info.h"
+#endif
+
+    // Version string
+    extern const char ompi_libcxx_version_string[];
+}
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+#include "ompi/mpi/cxx/pop_inln.h"
+#include "ompi/mpi/cxx/pgroup_inln.h"
+#include "ompi/mpi/cxx/pstatus_inln.h"
+#include "ompi/mpi/cxx/prequest_inln.h"
+#endif
+
+//
+// These are the "real" functions, whether prototyping is enabled
+// or not. These functions are assigned to either the MPI::XXX class
+// or the PMPI::XXX class based on the value of the macro MPI
+// which is set in mpi2cxx_config.h.
+// If prototyping is enabled, there is a top layer that calls these
+// PMPI functions, and this top layer is in the XXX.cc files.
+//
+
+/* see note above... */
+#ifdef OMPI_BUILDING_CXX_BINDINGS_LIBRARY
+#include "ompi/mpi/cxx/datatype_inln.h"
+#include "ompi/mpi/cxx/functions_inln.h"
+#include "ompi/mpi/cxx/request_inln.h"
+#include "ompi/mpi/cxx/comm_inln.h"
+#include "ompi/mpi/cxx/intracomm_inln.h"
+#include "ompi/mpi/cxx/topology_inln.h"
+#include "ompi/mpi/cxx/intercomm_inln.h"
+#include "ompi/mpi/cxx/group_inln.h"
+#include "ompi/mpi/cxx/op_inln.h"
+#include "ompi/mpi/cxx/errhandler_inln.h"
+#include "ompi/mpi/cxx/status_inln.h"
+#include "ompi/mpi/cxx/info_inln.h"
+#include "ompi/mpi/cxx/win_inln.h"
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+#include "ompi/mpi/cxx/file_inln.h"
+#endif
+#else
+#include "openmpi/ompi/mpi/cxx/datatype_inln.h"
+#include "openmpi/ompi/mpi/cxx/functions_inln.h"
+#include "openmpi/ompi/mpi/cxx/request_inln.h"
+#include "openmpi/ompi/mpi/cxx/comm_inln.h"
+#include "openmpi/ompi/mpi/cxx/intracomm_inln.h"
+#include "openmpi/ompi/mpi/cxx/topology_inln.h"
+#include "openmpi/ompi/mpi/cxx/intercomm_inln.h"
+#include "openmpi/ompi/mpi/cxx/group_inln.h"
+#include "openmpi/ompi/mpi/cxx/op_inln.h"
+#include "openmpi/ompi/mpi/cxx/errhandler_inln.h"
+#include "openmpi/ompi/mpi/cxx/status_inln.h"
+#include "openmpi/ompi/mpi/cxx/info_inln.h"
+#include "openmpi/ompi/mpi/cxx/win_inln.h"
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+#include "openmpi/ompi/mpi/cxx/file_inln.h"
+#endif
+#endif
+
+#endif // #if defined(__cplusplus) || defined(c_plusplus) 
+#endif // #ifndef MPIPP_H_
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op.h	(revision 97)
@@ -0,0 +1,61 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+class Op {
+public:
+
+  // construction
+  Op();
+  Op(MPI_Op i);
+  Op(const Op& op);
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  Op(const PMPI::Op& op) : pmpi_op(op) { }
+#endif
+  // destruction
+  virtual ~Op();
+  // assignment
+  Op& operator=(const Op& op);
+  Op& operator= (const MPI_Op &i);
+  // comparison
+  inline bool operator== (const Op &a);
+  inline bool operator!= (const Op &a);
+  // conversion functions for inter-language operability
+  inline operator MPI_Op () const;
+  //  inline operator MPI_Op* (); //JGS const
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  inline operator const PMPI::Op&() const { return pmpi_op; }
+#endif
+  // Collective Communication
+  //JGS took const out
+  virtual void Init(User_function *func, bool commute);
+  virtual void Free();
+ 
+#if ! 0 /* OMPI_ENABLE_MPI_PROFILING */
+protected:
+  MPI_Op mpi_op;
+#endif
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Op pmpi_op;
+#endif
+
+};
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/op_inln.h	(revision 97)
@@ -0,0 +1,131 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+inline
+MPI::Op::Op() { }
+  
+inline
+MPI::Op::Op(const MPI::Op& o) : pmpi_op(o.pmpi_op) { }
+  
+inline
+MPI::Op::Op(MPI_Op o) : pmpi_op(o) { }
+
+inline
+MPI::Op::~Op() { }
+
+inline
+MPI::Op& MPI::Op::operator=(const MPI::Op& op) {
+  pmpi_op = op.pmpi_op; return *this;
+}
+
+// comparison
+inline bool
+MPI::Op::operator== (const MPI::Op &a) {
+  return (bool)(pmpi_op == a.pmpi_op);
+}
+
+inline bool
+MPI::Op::operator!= (const MPI::Op &a) {
+  return (bool)!(*this == a);
+}
+
+// inter-language operability
+inline MPI::Op&
+MPI::Op::operator= (const MPI_Op &i) { pmpi_op = i; return *this; }
+
+inline
+MPI::Op::operator MPI_Op () const { return pmpi_op; }
+
+//inline
+//MPI::Op::operator MPI_Op* () { return pmpi_op; }
+
+
+#else  // ============= NO PROFILING ===================================
+
+// construction
+inline
+MPI::Op::Op() : mpi_op(MPI_OP_NULL) { }
+
+inline
+MPI::Op::Op(MPI_Op i) : mpi_op(i) { }
+
+inline
+MPI::Op::Op(const MPI::Op& op)
+  : mpi_op(op.mpi_op) { }
+
+inline 
+MPI::Op::~Op() 
+{ 
+#if 0
+  mpi_op = MPI_OP_NULL;
+  op_user_function = 0;
+#endif
+}  
+
+inline MPI::Op&
+MPI::Op::operator=(const MPI::Op& op) {
+  mpi_op = op.mpi_op;
+  return *this;
+}
+
+// comparison
+inline bool
+MPI::Op::operator== (const MPI::Op &a) { return (bool)(mpi_op == a.mpi_op); }
+
+inline bool
+MPI::Op::operator!= (const MPI::Op &a) { return (bool)!(*this == a); }
+
+// inter-language operability
+inline MPI::Op&
+MPI::Op::operator= (const MPI_Op &i) { mpi_op = i; return *this; }
+
+inline
+MPI::Op::operator MPI_Op () const { return mpi_op; }
+
+//inline
+//MPI::Op::operator MPI_Op* () { return &mpi_op; }
+
+#endif
+
+// Extern this function here rather than include an internal Open MPI
+// header file (and therefore force installing the internal Open MPI
+// header file so that user apps can #include it)
+
+extern "C" void ompi_op_set_cxx_callback(MPI_Op op, MPI_User_function*);
+
+// There is a lengthy comment in ompi/mpi/cxx/intercepts.cc explaining
+// what this function is doing.  Please read it before modifying this
+// function.
+inline void
+MPI::Op::Init(MPI::User_function *func, bool commute)
+{
+    (void)MPI_Op_create((MPI_User_function*) ompi_mpi_cxx_op_intercept, 
+                        (int) commute, &mpi_op);
+    ompi_op_set_cxx_callback(mpi_op, (MPI_User_function*) func);
+}
+
+
+inline void
+MPI::Op::Free()
+{
+  (void)MPI_Op_free(&mpi_op);
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request.h	(revision 97)
@@ -0,0 +1,235 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Request {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //    friend class PMPI::Request;
+#endif
+public:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction
+  Request() { }
+  Request(MPI_Request i) : pmpi_request(i) { }
+
+  // copy / assignment
+  Request(const Request& r) : pmpi_request(r.pmpi_request) { }
+
+  Request(const PMPI::Request& r) : pmpi_request(r) { }
+
+  virtual ~Request() {}
+
+  Request& operator=(const Request& r) {
+    pmpi_request = r.pmpi_request; return *this; }
+
+  // comparison
+  bool operator== (const Request &a) 
+  { return (bool)(pmpi_request == a.pmpi_request); }
+  bool operator!= (const Request &a) 
+  { return (bool)!(*this == a); }
+
+  // inter-language operability
+  Request& operator= (const MPI_Request &i) {
+    pmpi_request = i; return *this;  }
+
+  operator MPI_Request () const { return pmpi_request; }
+  //  operator MPI_Request* () const { return pmpi_request; }
+  operator const PMPI::Request&() const { return pmpi_request; }
+
+#else
+
+  // construction / destruction
+  Request() : mpi_request(MPI_REQUEST_NULL) { }
+  virtual ~Request() {}
+  Request(MPI_Request i) : mpi_request(i) { }
+
+  // copy / assignment
+  Request(const Request& r) : mpi_request(r.mpi_request) { }
+
+  Request& operator=(const Request& r) {
+    mpi_request = r.mpi_request; return *this; }
+
+  // comparison
+  bool operator== (const Request &a) 
+  { return (bool)(mpi_request == a.mpi_request); }
+  bool operator!= (const Request &a) 
+  { return (bool)!(*this == a); }
+
+  // inter-language operability
+  Request& operator= (const MPI_Request &i) {
+    mpi_request = i; return *this; }
+  operator MPI_Request () const { return mpi_request; }
+  //  operator MPI_Request* () const { return (MPI_Request*)&mpi_request; }
+
+#endif
+
+  //
+  // Point-to-Point Communication
+  //
+
+  virtual void Wait(Status &status);
+
+  virtual void Wait();
+
+  virtual bool Test(Status &status);
+
+  virtual bool Test();
+
+  virtual void Free(void);
+
+  static int Waitany(int count, Request array[], Status& status);
+
+  static int Waitany(int count, Request array[]);
+
+  static bool Testany(int count, Request array[], int& index, Status& status);
+
+  static bool Testany(int count, Request array[], int& index);
+
+  static void Waitall(int count, Request req_array[], Status stat_array[]);
+ 
+  static void Waitall(int count, Request req_array[]);
+
+  static bool Testall(int count, Request req_array[], Status stat_array[]);
+ 
+  static bool Testall(int count, Request req_array[]);
+
+  static int Waitsome(int incount, Request req_array[],
+			     int array_of_indices[], Status stat_array[]) ;
+
+  static int Waitsome(int incount, Request req_array[],
+			     int array_of_indices[]);
+
+  static int Testsome(int incount, Request req_array[],
+			     int array_of_indices[], Status stat_array[]);
+
+  static int Testsome(int incount, Request req_array[],
+			     int array_of_indices[]);
+
+  virtual void Cancel(void) const;
+
+  virtual bool Get_status(Status& status) const;
+
+  virtual bool Get_status() const;
+
+protected:
+#if ! 0 /* OMPI_ENABLE_MPI_PROFILING */
+  MPI_Request mpi_request;
+#endif
+
+private:
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Request pmpi_request;
+#endif 
+
+};
+
+
+class Prequest : public Request {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Prequest;
+#endif
+public:
+
+  Prequest() { }
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  Prequest(const Request& p) : Request(p), pmpi_request(p) { }
+
+  Prequest(const PMPI::Prequest& r) : 
+    Request((const PMPI::Request&)r),
+    pmpi_request(r) { }
+
+  Prequest(const MPI_Request &i) : Request(i), pmpi_request(i) { }
+  
+  virtual ~Prequest() { }
+
+  Prequest& operator=(const Request& r) {
+    Request::operator=(r);
+    pmpi_request = (PMPI::Prequest)r; return *this; }
+
+  Prequest& operator=(const Prequest& r) {
+    Request::operator=(r);
+    pmpi_request = r.pmpi_request; return *this; }
+#else
+  Prequest(const Request& p) : Request(p) { }
+
+  Prequest(const MPI_Request &i) : Request(i) { }
+
+  virtual ~Prequest() { }
+
+  Prequest& operator=(const Request& r) {
+    mpi_request = r; return *this; }
+
+  Prequest& operator=(const Prequest& r) {
+    mpi_request = r.mpi_request; return *this; }
+#endif
+
+  virtual void Start();
+
+  static void Startall(int count, Prequest array_of_requests[]);
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Prequest pmpi_request;
+#endif 
+};
+
+
+//
+// Generalized requests
+//
+class Grequest : public MPI::Request {
+  public:
+    typedef int Query_function(void *, Status&);
+    typedef int Free_function(void *);
+    typedef int Cancel_function(void *, bool);
+
+    Grequest() {}
+    Grequest(const Request& req) : Request(req) {}
+    Grequest(const MPI_Request &req) : Request(req) {}
+    virtual ~Grequest() {}
+
+    Grequest& operator=(const Request& req) {
+	mpi_request = req; return(*this);
+    }
+
+    Grequest& operator=(const Grequest& req) {
+	mpi_request = req.mpi_request; return(*this);
+    }
+
+    static Grequest Start(Query_function *, Free_function *,
+	    Cancel_function *, void *);
+
+    virtual void Complete();
+
+    //
+    // Type used for intercepting Generalized requests in the C++ layer so
+    // that the type can be converted to C++ types before invoking the
+    // user-specified C++ callbacks.
+    //
+    struct Intercept_data_t {
+        void *id_extra;
+        Grequest::Query_function *id_cxx_query_fn;
+        Grequest::Free_function *id_cxx_free_fn;
+        Grequest::Cancel_function *id_cxx_cancel_fn;
+    };
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/request_inln.h	(revision 97)
@@ -0,0 +1,366 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+//
+// Point-to-Point Communication
+//
+
+inline void
+MPI::Request::Wait(MPI::Status &status) 
+{
+  (void)MPI_Wait(&mpi_request, &status.mpi_status);
+}
+
+inline void
+MPI::Request::Wait() 
+{
+  (void)MPI_Wait(&mpi_request, MPI_STATUS_IGNORE);
+}
+
+inline void
+MPI::Request::Free() 
+{
+  (void)MPI_Request_free(&mpi_request);
+}
+
+inline bool
+MPI::Request::Test(MPI::Status &status) 
+{
+  int t;
+  (void)MPI_Test(&mpi_request, &t, &status.mpi_status);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+inline bool
+MPI::Request::Test() 
+{
+  int t;
+  (void)MPI_Test(&mpi_request, &t, MPI_STATUS_IGNORE);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+inline int
+MPI::Request::Waitany(int count, MPI::Request array[],
+			     MPI::Status& status)
+{
+  int index, i;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = array[i];
+  }
+  (void)MPI_Waitany(count, array_of_requests, &index, &status.mpi_status);
+  for (i=0; i < count; i++) {
+    array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+  return index;
+}
+
+inline int
+MPI::Request::Waitany(int count, MPI::Request array[])
+{
+  int index, i;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = array[i];
+  }
+  (void)MPI_Waitany(count, array_of_requests, &index, MPI_STATUS_IGNORE);
+  for (i=0; i < count; i++) {
+    array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+  return index; //JGS, Waitany return value
+}
+
+inline bool
+MPI::Request::Testany(int count, MPI::Request array[],
+			     int& index, MPI::Status& status)
+{
+  int i, flag;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = array[i];
+  }
+  (void)MPI_Testany(count, array_of_requests, &index, &flag, &status.mpi_status);
+  for (i=0; i < count; i++) {
+    array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+  return (bool)(flag != 0 ? true : false);
+}
+
+inline bool
+MPI::Request::Testany(int count, MPI::Request array[], int& index)
+{
+  int i, flag;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = array[i];
+  }
+  (void)MPI_Testany(count, array_of_requests, &index, &flag, 
+		    MPI_STATUS_IGNORE);
+  for (i=0; i < count; i++) {
+    array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline void
+MPI::Request::Waitall(int count, MPI::Request req_array[],
+			     MPI::Status stat_array[])
+{
+  int i;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  MPI_Status* array_of_statuses = new MPI_Status[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Waitall(count, array_of_requests, array_of_statuses);
+  for (i=0; i < count; i++) {
+    req_array[i] = array_of_requests[i];
+    stat_array[i] = array_of_statuses[i];
+  }
+  delete [] array_of_requests;
+  delete [] array_of_statuses;
+}
+
+inline void
+MPI::Request::Waitall(int count, MPI::Request req_array[])
+{
+  int i;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Waitall(count, array_of_requests, MPI_STATUSES_IGNORE);
+
+  for (i=0; i < count; i++) {
+    req_array[i] = array_of_requests[i];
+  }
+
+  delete [] array_of_requests;
+} 
+
+inline bool
+MPI::Request::Testall(int count, MPI::Request req_array[],
+			     MPI::Status stat_array[])
+{
+  int i, flag;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+  MPI_Status* array_of_statuses = new MPI_Status[count];
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Testall(count, array_of_requests, &flag, array_of_statuses);
+  for (i=0; i < count; i++) {
+    req_array[i] = array_of_requests[i];
+    stat_array[i] = array_of_statuses[i];
+  }
+  delete [] array_of_requests;
+  delete [] array_of_statuses;
+  return OPAL_INT_TO_BOOL(flag);
+}
+
+inline bool
+MPI::Request::Testall(int count, MPI::Request req_array[])
+{
+  int i, flag;
+  MPI_Request* array_of_requests = new MPI_Request[count];
+
+  for (i=0; i < count; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Testall(count, array_of_requests, &flag, MPI_STATUSES_IGNORE);
+
+  for (i=0; i < count; i++) {
+    req_array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+
+  return OPAL_INT_TO_BOOL(flag);
+} 
+
+inline int
+MPI::Request::Waitsome(int incount, MPI::Request req_array[],
+			      int array_of_indices[], MPI::Status stat_array[]) 
+{
+  int i, outcount;
+  MPI_Request* array_of_requests = new MPI_Request[incount];
+  MPI_Status* array_of_statuses = new MPI_Status[incount];
+  for (i=0; i < incount; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Waitsome(incount, array_of_requests, &outcount,
+		     array_of_indices, array_of_statuses);
+  for (i=0; i < incount; i++) {
+    req_array[i] = array_of_requests[i];
+    stat_array[i] = array_of_statuses[i];
+  }
+  delete [] array_of_requests;
+  delete [] array_of_statuses;
+  return outcount;
+}
+
+inline int
+MPI::Request::Waitsome(int incount, MPI::Request req_array[],
+			      int array_of_indices[]) 
+{
+  int i, outcount;
+  MPI_Request* array_of_requests = new MPI_Request[incount];
+
+  for (i=0; i < incount; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Waitsome(incount, array_of_requests, &outcount,
+		     array_of_indices, MPI_STATUSES_IGNORE);
+
+  for (i=0; i < incount; i++) {
+    req_array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+
+  return outcount;
+}
+
+inline int
+MPI::Request::Testsome(int incount, MPI::Request req_array[],
+			      int array_of_indices[], MPI::Status stat_array[]) 
+{
+  int i, outcount;
+  MPI_Request* array_of_requests = new MPI_Request[incount];
+  MPI_Status* array_of_statuses = new MPI_Status[incount];
+  for (i=0; i < incount; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Testsome(incount, array_of_requests, &outcount,
+		     array_of_indices, array_of_statuses);
+  for (i=0; i < incount; i++) {
+    req_array[i] = array_of_requests[i];
+    stat_array[i] = array_of_statuses[i];
+  }
+  delete [] array_of_requests;
+  delete [] array_of_statuses;
+  return outcount;
+}
+
+inline int
+MPI::Request::Testsome(int incount, MPI::Request req_array[],
+			      int array_of_indices[]) 
+{
+  int i, outcount;
+  MPI_Request* array_of_requests = new MPI_Request[incount];
+
+  for (i=0; i < incount; i++) {
+    array_of_requests[i] = req_array[i];
+  }
+  (void)MPI_Testsome(incount, array_of_requests, &outcount,
+		     array_of_indices, MPI_STATUSES_IGNORE);
+
+  for (i=0; i < incount; i++) {
+    req_array[i] = array_of_requests[i];
+  }
+  delete [] array_of_requests;
+
+  return outcount;
+}
+
+inline void
+MPI::Request::Cancel(void) const
+{
+  (void)MPI_Cancel(const_cast<MPI_Request *>(&mpi_request));
+}
+
+inline void
+MPI::Prequest::Start()
+{
+  (void)MPI_Start(&mpi_request);
+}
+
+inline void
+MPI::Prequest::Startall(int count, MPI:: Prequest array_of_requests[])
+{
+  //convert the array of Prequests to an array of MPI_requests
+  MPI_Request* mpi_requests = new MPI_Request[count];
+  int i;
+  for (i=0; i < count; i++) {
+    mpi_requests[i] = array_of_requests[i];
+  }
+  (void)MPI_Startall(count, mpi_requests); 
+  for (i=0; i < count; i++) {
+    array_of_requests[i].mpi_request = mpi_requests[i] ;
+  }
+  delete [] mpi_requests;
+} 
+
+inline bool MPI::Request::Get_status(MPI::Status& status) const
+{
+    int flag = 0;
+    MPI_Status c_status;
+
+    // Call the underlying MPI function rather than simply returning
+    // status.mpi_status because we may have to invoke the generalized
+    // request query function
+    (void)MPI_Request_get_status(mpi_request, &flag, &c_status);
+    if (flag) {
+        status = c_status;
+    }
+    return OPAL_INT_TO_BOOL(flag);
+}
+
+inline bool MPI::Request::Get_status() const
+{
+    int flag;
+
+    // Call the underlying MPI function rather than simply returning
+    // status.mpi_status because we may have to invoke the generalized
+    // request query function
+    (void)MPI_Request_get_status(mpi_request, &flag, MPI_STATUS_IGNORE);
+    return OPAL_INT_TO_BOOL(flag);
+}
+
+inline MPI::Grequest
+MPI::Grequest::Start(Query_function *query_fn, Free_function *free_fn,
+	Cancel_function *cancel_fn, void *extra)
+{
+    MPI_Request grequest = 0;
+    Intercept_data_t *new_extra = 
+        new MPI::Grequest::Intercept_data_t;
+
+    new_extra->id_extra = extra;
+    new_extra->id_cxx_query_fn = query_fn;
+    new_extra->id_cxx_free_fn = free_fn;
+    new_extra->id_cxx_cancel_fn = cancel_fn;
+    (void) MPI_Grequest_start(ompi_mpi_cxx_grequest_query_fn_intercept,
+                              ompi_mpi_cxx_grequest_free_fn_intercept,
+                              ompi_mpi_cxx_grequest_cancel_fn_intercept,
+                              new_extra, &grequest);
+
+    return(grequest);
+}
+
+inline void
+MPI::Grequest::Complete()
+{
+    (void) MPI_Grequest_complete(mpi_request);
+}
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status.h	(revision 97)
@@ -0,0 +1,115 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Status {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class PMPI::Status;
+#endif
+  friend class MPI::Comm; //so I can access pmpi_status data member in comm.cc
+  friend class MPI::Request; //and also from request.cc
+#if OMPI_PROVIDE_MPI_FILE_INTERFACE
+  friend class MPI::File;
+#endif
+
+public:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction / destruction
+  Status() { }
+  virtual ~Status() {}
+
+  // copy / assignment
+  Status(const Status& data) : pmpi_status(data.pmpi_status) { }
+
+  Status(const MPI_Status &i) : pmpi_status(i) { }
+
+  Status& operator=(const Status& data) {
+    pmpi_status = data.pmpi_status; return *this; }
+
+  // comparison, don't need for status
+
+  // inter-language operability
+  Status& operator= (const MPI_Status &i) {
+    pmpi_status = i; return *this; }
+  operator MPI_Status () const { return pmpi_status; }
+  //  operator MPI_Status* () const { return pmpi_status; }
+  operator const PMPI::Status&() const { return pmpi_status; }
+
+#else
+
+  Status() : mpi_status() { }
+  // copy
+  Status(const Status& data) : mpi_status(data.mpi_status) { }
+
+  Status(const MPI_Status &i) : mpi_status(i) { }
+
+  virtual ~Status() {}
+
+  Status& operator=(const Status& data) {
+    mpi_status = data.mpi_status; return *this; }
+
+  // comparison, don't need for status
+
+  // inter-language operability
+  Status& operator= (const MPI_Status &i) {
+    mpi_status = i; return *this; }
+  operator MPI_Status () const { return mpi_status; }
+  //  operator MPI_Status* () const { return (MPI_Status*)&mpi_status; }
+
+#endif
+
+  //
+  // Point-to-Point Communication
+  //
+
+  virtual int Get_count(const Datatype& datatype) const;
+
+  virtual bool Is_cancelled() const;
+
+  virtual int Get_elements(const Datatype& datatype) const;
+
+  //
+  // Status Access
+  //
+  virtual int Get_source() const;
+
+  virtual void Set_source(int source);
+
+  virtual int Get_tag() const;
+  
+  virtual void Set_tag(int tag);
+  
+  virtual int Get_error() const;
+
+  virtual void Set_error(int error);
+
+  virtual void Set_elements(const MPI::Datatype& datatype, int count);
+
+  virtual void Set_cancelled(bool flag);
+
+protected:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Status pmpi_status;
+#else
+  MPI_Status mpi_status;
+#endif
+
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/status_inln.h	(revision 97)
@@ -0,0 +1,105 @@
+// -*- c++ -*-
+// 
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006      Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+//
+// Point-to-Point Communication
+//
+
+inline int
+MPI::Status::Get_count(const MPI::Datatype& datatype) const
+{
+  int count;
+  (void)MPI_Get_count(const_cast<MPI_Status*>(&mpi_status), datatype, &count);
+  return count;
+}
+
+inline bool
+MPI::Status::Is_cancelled() const
+{
+  int t;
+  (void)MPI_Test_cancelled(const_cast<MPI_Status*>(&mpi_status), &t);
+  return OPAL_INT_TO_BOOL(t);
+}
+
+inline int
+MPI::Status::Get_elements(const MPI::Datatype& datatype) const
+{
+  int count;
+  (void)MPI_Get_elements(const_cast<MPI_Status*>(&mpi_status), datatype, &count);
+  return count;
+}
+
+//
+// Status Access
+//
+inline int
+MPI::Status::Get_source() const
+{
+  int source;
+  source = mpi_status.MPI_SOURCE;
+  return source;
+}
+
+inline void
+MPI::Status::Set_source(int source)
+{
+  mpi_status.MPI_SOURCE = source;
+}
+
+inline int
+MPI::Status::Get_tag() const
+{
+  int tag;
+  tag = mpi_status.MPI_TAG;
+  return tag;
+}
+
+inline void
+MPI::Status::Set_tag(int tag)
+{
+  mpi_status.MPI_TAG = tag;
+}
+
+inline int
+MPI::Status::Get_error() const
+{
+  int error;
+  error = mpi_status.MPI_ERROR;
+  return error;
+}
+
+inline void
+MPI::Status::Set_error(int error)
+{
+  mpi_status.MPI_ERROR = error;
+}
+
+inline void
+MPI::Status::Set_elements(const MPI::Datatype& datatype, int count)
+{
+    MPI_Status_set_elements(&mpi_status, datatype, count);
+}
+
+inline void
+MPI::Status::Set_cancelled(bool flag)
+{
+    MPI_Status_set_cancelled(&mpi_status, (int) flag);
+}
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology.h	(revision 97)
@@ -0,0 +1,166 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Cartcomm : public Intracomm {
+public:
+
+  // construction
+  Cartcomm() { }
+  // copy
+  Cartcomm(const Comm_Null& data) : Intracomm(data) { }
+  // inter-language operability
+  inline Cartcomm(const MPI_Comm& data);
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  Cartcomm(const Cartcomm& data) : Intracomm(data), pmpi_comm(data) { }
+  Cartcomm(const PMPI::Cartcomm& d) : 
+    Intracomm((const PMPI::Intracomm&)d),
+    pmpi_comm(d) { }
+  
+  // assignment
+  Cartcomm& operator=(const Cartcomm& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = data.pmpi_comm; return *this; }
+  Cartcomm& operator=(const Comm_Null& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = (PMPI::Cartcomm)data; return *this; }
+  // inter-language operability
+  Cartcomm& operator=(const MPI_Comm& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = data; return *this; }
+#else
+  Cartcomm(const Cartcomm& data) : Intracomm(data.mpi_comm) { }
+  // assignment
+  Cartcomm& operator=(const Cartcomm& data) {
+    mpi_comm = data.mpi_comm; return *this; }
+  Cartcomm& operator=(const Comm_Null& data) {
+    mpi_comm = data; return *this; }
+  // inter-language operability
+  Cartcomm& operator=(const MPI_Comm& data) {
+    mpi_comm = data; return *this; } 
+#endif
+  //
+  // Groups, Contexts, and Communicators
+  //
+
+  Cartcomm Dup() const;
+
+  virtual Cartcomm& Clone() const;
+
+
+  //
+  // Groups, Contexts, and Communicators
+  //
+
+  virtual int Get_dim() const;
+
+  virtual void Get_topo(int maxdims, int dims[], bool periods[],
+			int coords[]) const;
+
+  virtual int Get_cart_rank(const int coords[]) const;
+
+  virtual void Get_coords(int rank, int maxdims, int coords[]) const;
+
+  virtual void Shift(int direction, int disp,
+		     int &rank_source, int &rank_dest) const;
+  
+  virtual Cartcomm Sub(const bool remain_dims[]);
+
+  virtual int Map(int ndims, const int dims[], const bool periods[]) const;
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Cartcomm pmpi_comm;
+#endif
+};
+
+
+//===================================================================
+//                    Class Graphcomm
+//===================================================================
+
+class Graphcomm : public Intracomm {
+public:
+
+  // construction
+  Graphcomm() { }
+  // copy
+  Graphcomm(const Comm_Null& data) : Intracomm(data) { }
+  // inter-language operability
+  inline Graphcomm(const MPI_Comm& data);
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  Graphcomm(const Graphcomm& data) : Intracomm(data), pmpi_comm(data) { }
+  Graphcomm(const PMPI::Graphcomm& d) : 
+    Intracomm((const PMPI::Intracomm&)d), pmpi_comm(d) { }
+  
+  // assignment
+  Graphcomm& operator=(const Graphcomm& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = data.pmpi_comm; return *this; }
+  Graphcomm& operator=(const Comm_Null& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = (PMPI::Graphcomm)data; return *this; }
+  // inter-language operability
+  Graphcomm& operator=(const MPI_Comm& data) {
+    Intracomm::operator=(data);
+    pmpi_comm = data; return *this; }
+
+#else
+  Graphcomm(const Graphcomm& data) : Intracomm(data.mpi_comm) { }
+  // assignment
+  Graphcomm& operator=(const Graphcomm& data) {
+    mpi_comm = data.mpi_comm; return *this; }
+  Graphcomm& operator=(const Comm_Null& data) {
+    mpi_comm = data; return *this; }
+  // inter-language operability
+  Graphcomm& operator=(const MPI_Comm& data) {
+    mpi_comm = data; return *this; } 
+#endif
+
+  //
+  // Groups, Contexts, and Communicators
+  //
+  
+  Graphcomm Dup() const;
+
+  virtual Graphcomm& Clone() const;
+
+  //
+  //  Process Topologies
+  //
+
+  virtual void Get_dims(int nnodes[], int nedges[]) const;
+
+  virtual void Get_topo(int maxindex, int maxedges, int index[], 
+			int edges[]) const;
+
+  virtual int Get_neighbors_count(int rank) const;
+
+  virtual void Get_neighbors(int rank, int maxneighbors, 
+			     int neighbors[]) const;
+
+  virtual int Map(int nnodes, const int index[], 
+		  const int edges[]) const;
+
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+private:
+  PMPI::Graphcomm pmpi_comm;
+#endif
+};
+
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/topology_inln.h	(revision 97)
@@ -0,0 +1,218 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+//
+//   ========   Cartcomm member functions  ========
+//
+
+inline
+MPI::Cartcomm::Cartcomm(const MPI_Comm& data) {
+  int status = 0;
+  if (MPI::Is_initialized() && (data != MPI_COMM_NULL)) {
+    (void)MPI_Topo_test(data, &status) ;
+    if (status == MPI_CART)
+      mpi_comm = data;
+    else
+      mpi_comm = MPI_COMM_NULL;
+  }
+  else {
+    mpi_comm = data;
+  }
+}
+
+//
+// Groups, Contexts, and Communicators
+//
+
+inline MPI::Cartcomm
+MPI::Cartcomm::Dup() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  return newcomm;
+}
+
+//
+//  Process Topologies
+//
+
+inline int
+MPI::Cartcomm::Get_dim() const 
+{
+  int ndims;
+  (void)MPI_Cartdim_get(mpi_comm, &ndims);
+  return ndims;
+}
+
+inline void
+MPI::Cartcomm::Get_topo(int maxdims, int dims[], bool periods[],
+			       int coords[]) const
+{
+  int *int_periods = new int [maxdims];
+  int i;
+  for (i=0; i<maxdims; i++) {
+    int_periods[i] = (int)periods[i];
+  }
+  (void)MPI_Cart_get(mpi_comm, maxdims, dims, int_periods, coords);
+  for (i=0; i<maxdims; i++) {
+    periods[i] = OPAL_INT_TO_BOOL(int_periods[i]);
+  }
+  delete [] int_periods;
+}
+
+inline int
+MPI::Cartcomm::Get_cart_rank(const int coords[]) const 
+{
+  int rank;
+  (void)MPI_Cart_rank(mpi_comm, const_cast<int *>(coords), &rank);
+  return rank;
+}
+  
+inline void
+MPI::Cartcomm::Get_coords(int rank, int maxdims, int coords[]) const 
+{
+  (void)MPI_Cart_coords(mpi_comm, rank, maxdims, coords);
+} 
+
+inline void
+MPI::Cartcomm::Shift(int direction, int disp,
+			    int &rank_source, int &rank_dest) const 
+{
+  (void)MPI_Cart_shift(mpi_comm, direction, disp, &rank_source, &rank_dest);
+}
+
+inline MPI::Cartcomm
+MPI::Cartcomm::Sub(const bool remain_dims[]) 
+{
+  int ndims;
+  MPI_Cartdim_get(mpi_comm, &ndims);
+  int* int_remain_dims = new int[ndims];
+  for (int i=0; i<ndims; i++) {
+    int_remain_dims[i] = (int)remain_dims[i];
+  }
+  MPI_Comm newcomm;
+  (void)MPI_Cart_sub(mpi_comm, int_remain_dims, &newcomm);
+  delete [] int_remain_dims;
+  return newcomm;
+}
+
+inline int
+MPI::Cartcomm::Map(int ndims, const int dims[], const bool periods[]) const 
+{
+  int *int_periods = new int [ndims];
+  for (int i=0; i<ndims; i++) {
+    int_periods[i] = (int) periods[i];
+  }
+  int newrank;
+  (void)MPI_Cart_map(mpi_comm, ndims, const_cast<int *>(dims), int_periods, &newrank);
+  delete [] int_periods;
+  return newrank;
+}
+
+
+inline MPI::Cartcomm&
+MPI::Cartcomm::Clone() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  MPI::Cartcomm* dup = new MPI::Cartcomm(newcomm);
+  return *dup;
+}
+
+//
+//   ========   Graphcomm member functions  ========
+//
+
+inline
+MPI::Graphcomm::Graphcomm(const MPI_Comm& data) {
+  int status = 0;
+  if (MPI::Is_initialized() && (data != MPI_COMM_NULL)) {
+    (void)MPI_Topo_test(data, &status) ;
+    if (status == MPI_GRAPH)
+      mpi_comm = data;
+    else
+      mpi_comm = MPI_COMM_NULL;
+  }
+  else {
+    mpi_comm = data;
+  }
+}
+
+//
+// Groups, Contexts, and Communicators
+//
+
+inline MPI::Graphcomm
+MPI::Graphcomm::Dup() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  return newcomm;
+}
+
+//
+//  Process Topologies
+//
+
+inline void
+MPI::Graphcomm::Get_dims(int nnodes[], int nedges[]) const 
+{
+  (void)MPI_Graphdims_get(mpi_comm, nnodes, nedges);
+}
+
+inline void
+MPI::Graphcomm::Get_topo(int maxindex, int maxedges, int index[], 
+	 int edges[]) const
+{
+  (void)MPI_Graph_get(mpi_comm, maxindex, maxedges, index, edges);
+}
+
+inline int
+MPI::Graphcomm::Get_neighbors_count(int rank) const 
+{
+  int nneighbors;
+  (void)MPI_Graph_neighbors_count(mpi_comm, rank, &nneighbors);
+  return nneighbors;
+}
+
+inline void
+MPI::Graphcomm::Get_neighbors(int rank, int maxneighbors, 
+	      int neighbors[]) const 
+{
+  (void)MPI_Graph_neighbors(mpi_comm, rank, maxneighbors, neighbors);
+}
+
+inline int
+MPI::Graphcomm::Map(int nnodes, const int index[], 
+    const int edges[]) const 
+{
+  int newrank;
+  (void)MPI_Graph_map(mpi_comm, nnodes, const_cast<int *>(index), const_cast<int *>(edges), &newrank);
+  return newrank;
+}
+
+inline MPI::Graphcomm&
+MPI::Graphcomm::Clone() const
+{
+  MPI_Comm newcomm;
+  (void)MPI_Comm_dup(mpi_comm, &newcomm);
+  MPI::Graphcomm* dup = new MPI::Graphcomm(newcomm);
+  return *dup;
+}
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win.h	(revision 97)
@@ -0,0 +1,210 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+// Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+class Win {
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  //  friend class P;
+#endif
+  friend class MPI::Comm; //so I can access pmpi_win data member in comm.cc
+  friend class MPI::Request; //and also from request.cc
+
+public:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+
+  // construction / destruction
+  Win() { }
+  virtual ~Win() { }
+
+
+  // copy / assignment
+  Win(const Win& data) : pmpi_win(data.pmpi_win) { }
+
+  Win(MPI_Win i) : pmpi_win(i) { }
+
+  Win& operator=(const Win& data) {
+    pmpi_win = data.pmpi_win; return *this; }
+
+  // comparison, don't need for win
+
+  // inter-language operability
+  Win& operator= (const MPI_Win &i) {
+    pmpi_win = i; return *this; }
+  operator MPI_Win () const { return pmpi_win; }
+  //  operator MPI_Win* () const { return pmpi_win; }
+  operator const PMPI::Win&() const { return pmpi_win; }
+
+#else
+
+  Win() : mpi_win(MPI_WIN_NULL) { }
+  // copy
+  Win(const Win& data) : mpi_win(data.mpi_win) { }
+
+  Win(MPI_Win i) : mpi_win(i) { }
+	
+  virtual ~Win() { }
+
+  Win& operator=(const Win& data) {
+    mpi_win = data.mpi_win; return *this; }
+
+  // comparison, don't need for win
+
+  // inter-language operability
+  Win& operator= (const MPI_Win &i) {
+    mpi_win = i; return *this; }
+  operator MPI_Win () const { return mpi_win; }
+  //  operator MPI_Win* () const { return (MPI_Win*)&mpi_win; }
+
+#endif
+
+  //
+  // User defined functions
+  //
+  typedef int Copy_attr_function(const Win& oldwin, int win_keyval, 
+				 void* extra_state, void* attribute_val_in, 
+				 void* attribute_val_out, bool& flag); 
+  
+  typedef int Delete_attr_function(Win& win, int win_keyval, 
+				   void* attribute_val, void* extra_state); 
+  
+  typedef void Errhandler_fn(Win &, int *, ... );
+  
+  //
+  // Errhandler
+  //
+  static MPI::Errhandler Create_errhandler(Errhandler_fn* function);
+
+  virtual void Set_errhandler(const MPI::Errhandler& errhandler) const;
+
+  virtual MPI::Errhandler Get_errhandler() const; 
+
+  //
+  // One sided communication
+  //
+  virtual void Accumulate(const void* origin_addr, int origin_count, 
+			  const MPI::Datatype& origin_datatype, 
+			  int target_rank, MPI::Aint target_disp, 
+			  int target_count, 
+			  const MPI::Datatype& target_datatype, 
+			  const MPI::Op& op) const;
+  
+  virtual void Complete() const;
+  
+  static  Win Create(const void* base, MPI::Aint size, int disp_unit, 
+		     const MPI::Info& info, const MPI::Intracomm& comm);
+  
+  virtual void Fence(int assert) const;
+  
+  virtual void Free(); 
+  
+  virtual void Get(const void *origin_addr, int origin_count, 
+		   const MPI::Datatype& origin_datatype, int target_rank, 
+		   MPI::Aint target_disp, int target_count, 
+		   const MPI::Datatype& target_datatype) const;
+  
+  virtual MPI::Group Get_group() const;  
+
+  virtual void Lock(int lock_type, int rank, int assert) const;
+  
+  virtual void Post(const MPI::Group& group, int assert) const;
+  
+  virtual void Put(const void* origin_addr, int origin_count, 
+		   const MPI::Datatype& origin_datatype, int target_rank, 
+		   MPI::Aint target_disp, int target_count, 
+		   const MPI::Datatype& target_datatype) const;
+  
+  virtual void Start(const MPI::Group& group, int assert) const; 
+  
+  virtual bool Test() const;
+
+  virtual void Unlock(int rank) const;
+  
+  virtual void Wait() const;
+  
+
+  //
+  // External Interfaces
+  //
+  virtual void Call_errhandler(int errorcode) const;
+  
+  // Need 4 overloaded versions of this function because per the
+  // MPI-2 spec, you can mix-n-match the C predefined functions with
+  // C++ functions.
+  static int Create_keyval(Copy_attr_function* win_copy_attr_fn, 
+			   Delete_attr_function* win_delete_attr_fn, 
+			   void* extra_state);
+  static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn, 
+			   MPI_Win_delete_attr_function* win_delete_attr_fn, 
+			   void* extra_state);
+  static int Create_keyval(Copy_attr_function* win_copy_attr_fn, 
+			   MPI_Win_delete_attr_function* win_delete_attr_fn, 
+			   void* extra_state);
+  static int Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn, 
+			   Delete_attr_function* win_delete_attr_fn, 
+			   void* extra_state);
+  
+protected:
+  // Back-end function to do the heavy lifting for creating the
+  // keyval
+  static int do_create_keyval(MPI_Win_copy_attr_function* c_copy_fn,
+                              MPI_Win_delete_attr_function* c_delete_fn,
+                              Copy_attr_function* cxx_copy_fn,
+                              Delete_attr_function* cxx_delete_fn,
+                              void* extra_state, int &keyval);
+
+public:
+  virtual void Delete_attr(int win_keyval);
+  
+  static void Free_keyval(int& win_keyval); 
+  
+  // version 1: pre-errata Get_attr (not correct, but probably nice to support
+  bool Get_attr(const Win& win, int win_keyval,
+               void* attribute_val) const;
+
+  // version 2: post-errata Get_attr (correct, but no one seems to know about it)
+  bool Get_attr(int win_keyval, void* attribute_val) const;
+  
+  virtual void Get_name(char* win_name, int& resultlen) const;
+  
+  virtual void Set_attr(int win_keyval, const void* attribute_val);
+  
+  virtual void Set_name(const char* win_name);
+
+  // Data that is passed through keyval create when C++ callback
+  // functions are used
+  struct keyval_intercept_data_t {
+      MPI_Win_copy_attr_function *c_copy_fn;
+      MPI_Win_delete_attr_function *c_delete_fn;
+      Copy_attr_function* cxx_copy_fn;
+      Delete_attr_function* cxx_delete_fn;
+      void *extra_state;
+  };
+
+  // Protect the global list from multiple thread access
+  static opal_mutex_t cxx_extra_states_lock;
+  
+protected:
+#if 0 /* OMPI_ENABLE_MPI_PROFILING */
+  PMPI::Win pmpi_win;
+#else
+  MPI_Win mpi_win;
+#endif
+};
Index: proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win_inln.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win_inln.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/openmpi/ompi/mpi/cxx/win_inln.h	(revision 97)
@@ -0,0 +1,295 @@
+// -*- c++ -*-
+//
+// Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+//                         University Research and Technology
+//                         Corporation.  All rights reserved.
+// Copyright (c) 2004-2005 The University of Tennessee and The University
+//                         of Tennessee Research Foundation.  All rights
+//                         reserved.
+// Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+//                         University of Stuttgart.  All rights reserved.
+// Copyright (c) 2004-2005 The Regents of the University of California.
+//                         All rights reserved.
+// Copyright (c) 2007      Sun Microsystems, Inc.  All rights reserved.
+// Copyright (c) 2007-2008 Cisco Systems, Inc.  All rights reserved.
+// $COPYRIGHT$
+// 
+// Additional copyrights may follow
+// 
+// $HEADER$
+//
+
+
+
+//
+// Miscellany
+//
+
+
+inline MPI::Errhandler 
+MPI::Win:: Get_errhandler() const 
+{
+    MPI_Errhandler errhandler;
+    MPI_Win_get_errhandler(mpi_win, &errhandler);
+    return errhandler;
+}
+
+
+inline void 
+MPI::Win::Set_errhandler(const MPI::Errhandler& errhandler) const
+{
+    (void)MPI_Win_set_errhandler(mpi_win, errhandler);
+}
+
+
+//
+// One sided communication
+//
+
+
+inline void 
+MPI::Win::Accumulate(const void* origin_addr, int origin_count,
+	       	const MPI::Datatype& origin_datatype, int target_rank,
+	       	MPI::Aint target_disp, int target_count,
+	       	const MPI::Datatype& target_datatype,
+	       	const MPI::Op& op) const 
+{
+  (void) MPI_Accumulate(const_cast<void *>(origin_addr), origin_count, origin_datatype,
+			target_rank, target_disp, target_count, 
+			target_datatype, op, mpi_win);
+  
+}
+
+
+inline void
+MPI::Win::Complete() const 
+{
+  (void) MPI_Win_complete(mpi_win);
+}
+
+
+inline  MPI::Win 
+MPI::Win::Create(const void* base, MPI::Aint size, 
+			int disp_unit, const MPI::Info& info, 
+			const MPI::Intracomm& comm) 
+{
+  MPI_Win newwin;
+  (void) MPI_Win_create(const_cast<void *>(base), size, disp_unit, info, comm, &newwin);
+  return newwin;
+}
+
+
+inline void 
+MPI::Win::Fence(int assert) const 
+{
+  (void) MPI_Win_fence(assert, mpi_win);
+}
+
+
+inline void 
+MPI::Win::Get(const void *origin_addr, int origin_count, 
+		     const MPI::Datatype& origin_datatype, 
+		     int target_rank, MPI::Aint target_disp, 
+		     int target_count, 
+		     const MPI::Datatype& target_datatype) const 
+{
+  (void) MPI_Get(const_cast<void *>(origin_addr), origin_count, origin_datatype,
+		     target_rank, target_disp, 
+		     target_count, target_datatype, mpi_win);
+
+}
+
+
+inline MPI::Group 
+MPI::Win::Get_group() const
+{
+  MPI_Group mpi_group;
+  (void) MPI_Win_get_group(mpi_win, &mpi_group);
+  return mpi_group;
+}
+
+
+inline void 
+MPI::Win::Lock(int lock_type, int rank, int assert) const 
+{
+  (void) MPI_Win_lock(lock_type, rank, assert, mpi_win);
+}
+
+
+inline void 
+MPI::Win::Post(const MPI::Group& group, int assert) const 
+{
+  (void) MPI_Win_post(group, assert, mpi_win);
+}
+
+
+inline void 
+MPI::Win::Put(const void* origin_addr, int origin_count, 
+		     const MPI::Datatype& origin_datatype, 
+		     int target_rank, MPI::Aint target_disp, 
+		     int target_count, 
+		     const MPI::Datatype& target_datatype) const 
+{
+  (void) MPI_Put(const_cast<void *>(origin_addr), origin_count, origin_datatype, 
+		 target_rank, target_disp, target_count,
+		 target_datatype, mpi_win);
+  
+}
+
+
+inline void 
+MPI::Win::Start(const MPI::Group& group, int assert) const
+{
+  (void) MPI_Win_start(group, assert, mpi_win);
+}
+
+
+inline bool 
+MPI::Win::Test() const
+{
+  int flag;
+  MPI_Win_test(mpi_win, &flag);
+  return OPAL_INT_TO_BOOL(flag);
+  
+}
+
+
+inline void 
+MPI::Win::Unlock(int rank) const
+{
+  (void) MPI_Win_unlock(rank, mpi_win);
+}
+
+
+inline void 
+MPI::Win::Wait() const
+{
+  (void) MPI_Win_wait(mpi_win);
+}
+
+
+//
+// External Interfaces
+//
+
+inline void 
+MPI::Win::Call_errhandler(int errorcode) const
+{
+  (void) MPI_Win_call_errhandler(mpi_win, errorcode);
+}
+
+// 1) original Create_keyval that takes the first 2 arguments as C++
+//    functions
+inline int
+MPI::Win::Create_keyval(MPI::Win::Copy_attr_function* win_copy_attr_fn,
+                             MPI::Win::Delete_attr_function* win_delete_attr_fn, 
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, NULL, 
+                           win_copy_attr_fn, win_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 2) overload Create_keyval to take the first 2 arguments as C
+//    functions
+inline int
+MPI::Win::Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
+                             MPI_Win_delete_attr_function* win_delete_attr_fn, 
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(win_copy_attr_fn, win_delete_attr_fn,
+                           NULL, NULL, 
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 3) overload Create_keyval to take the first 2 arguments as C++ & C
+//    functions
+inline int
+MPI::Win::Create_keyval(MPI::Win::Copy_attr_function* win_copy_attr_fn,
+                             MPI_Win_delete_attr_function* win_delete_attr_fn,
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(NULL, win_delete_attr_fn,
+                           win_copy_attr_fn, NULL, 
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+// 4) overload Create_keyval to take the first 2 arguments as C & C++
+//    functions
+inline int
+MPI::Win::Create_keyval(MPI_Win_copy_attr_function* win_copy_attr_fn,
+                             MPI::Win::Delete_attr_function* win_delete_attr_fn,
+                             void* extra_state)
+{
+    // Back-end function does the heavy lifting
+    int ret, keyval;
+    ret = do_create_keyval(win_copy_attr_fn, NULL,
+                           NULL, win_delete_attr_fn,
+                           extra_state, keyval);
+    return (MPI_SUCCESS == ret) ? keyval : ret;
+}
+
+inline void 
+MPI::Win::Delete_attr(int win_keyval) 
+{
+  (void) MPI_Win_delete_attr(mpi_win, win_keyval);
+}
+
+
+inline void 
+MPI::Win::Free_keyval(int& win_keyval)
+{
+  (void) MPI_Win_free_keyval(&win_keyval);
+}
+
+
+// version 1: pre-errata Get_attr (not correct, but probably nice to support
+inline bool
+MPI::Win::Get_attr(const Win& win, int win_keyval,
+                         void* attribute_val) const
+{
+  int ret;
+  (void) MPI_Win_get_attr(win, win_keyval, attribute_val, &ret);
+  return OPAL_INT_TO_BOOL(ret);
+}
+
+
+// version 2: post-errata Get_attr (correct, but no one seems to know about it)
+inline bool 
+MPI::Win::Get_attr(int win_keyval, void* attribute_val) const
+{
+  int ret;
+  (void) MPI_Win_get_attr(mpi_win, win_keyval, attribute_val, &ret);
+  return OPAL_INT_TO_BOOL(ret);
+}
+
+
+inline void 
+MPI::Win::Get_name(char* win_name, int& resultlen) const
+{
+  (void) MPI_Win_get_name(mpi_win, win_name, &resultlen);
+}
+
+
+inline void 
+MPI::Win::Set_attr(int win_keyval, const void* attribute_val) 
+{
+  (void) MPI_Win_set_attr(mpi_win, win_keyval, const_cast<void *>(attribute_val));
+}
+
+
+inline void 
+MPI::Win::Set_name(const char* win_name) 
+{
+  (void) MPI_Win_set_name(mpi_win, const_cast<char *>(win_name));
+}
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_CopyHandler.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_CopyHandler.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_CopyHandler.h	(revision 97)
@@ -0,0 +1,155 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_CopyHandler.h
+ * 
+ *  @brief Provides handlers for copying a trace.
+ *
+ *  \ingroup internal
+ */
+
+#ifndef OTF_COPYOTF_CopyHandler_R_H
+#define OTF_COPYOTF_CopyHandler_R_H
+
+
+#include "OTF_inttypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* *** Definition OTF_CopyHandler_r *** ************************************* */
+
+int OTF_CopyHandler_DefinitionComment( void* userData, uint32_t stream,
+	const char* comment );
+
+int OTF_CopyHandler_DefTimerResolution( void* userData, uint32_t stream,
+	uint64_t ticksPerSecond );
+
+int OTF_CopyHandler_DefProcess( void* userData, uint32_t stream, uint32_t process,
+	const char* name, uint32_t parent );
+
+int OTF_CopyHandler_DefProcessGroup( void* userData, uint32_t stream,
+	uint32_t procGroup, const char* name, uint32_t numberOfProcs,
+	const uint32_t* procs );
+
+int OTF_CopyHandler_DefFunction( void* userData, uint32_t stream, uint32_t func,
+	const char* name, uint32_t funcGroup, uint32_t source );
+
+int OTF_CopyHandler_DefFunctionGroup( void* userData, uint32_t stream,
+	uint32_t funcGroup, const char* name );
+
+int OTF_CopyHandler_DefCollectiveOperation( void* userData, uint32_t stream,
+	uint32_t collOp, const char* name, uint32_t type );
+
+int OTF_CopyHandler_DefCounter( void* userData, uint32_t stream, uint32_t counter,
+	const char* name, uint32_t properties, uint32_t counterGroup,
+	const char* unit );
+
+int OTF_CopyHandler_DefCounterGroup( void* userData, uint32_t stream,
+	uint32_t counterGroup, const char* name );
+
+int OTF_CopyHandler_DefScl( void* userData, uint32_t stream, uint32_t source,
+	uint32_t sourceFile, uint32_t line );
+
+int OTF_CopyHandler_DefSclFile( void* userData, uint32_t stream,
+	uint32_t sourceFile, const char* name );
+
+int OTF_CopyHandler_DefVersion( void* userData, uint32_t stream,
+	uint8_t major, uint8_t minor, uint8_t sub, const char* string );
+
+int OTF_CopyHandler_DefCreator( void* userData, uint32_t stream,
+	const char* creator );
+
+int OTF_CopyHandler_DefFile( void* userData, uint32_t stream, uint32_t token,
+	const char* name, uint32_t group );
+	
+int OTF_CopyHandler_DefFileGroup( void* userData, uint32_t stream,
+	uint32_t token, const char* name );
+	
+	
+int OTF_CopyHandler_Enter( void* userData, uint64_t time, uint32_t function, 
+	uint32_t process, uint32_t source );
+
+int OTF_CopyHandler_Leave( void* userData, uint64_t time, uint32_t function, 
+	uint32_t process, uint32_t source );
+
+int OTF_CopyHandler_SendMsg( void* userData, uint64_t time, uint32_t sender, 
+	uint32_t receiver, uint32_t group, uint32_t type, uint32_t length,
+	uint32_t source );
+
+int OTF_CopyHandler_RecvMsg( void* userData, uint64_t time, uint32_t recvProc,
+	uint32_t sendProc, uint32_t group, uint32_t type, uint32_t length, 
+	uint32_t source );
+
+int OTF_CopyHandler_Counter( void* userData, uint64_t time, uint32_t process, 
+	uint32_t counter, uint64_t value );
+
+int OTF_CopyHandler_CollectiveOperation( void* userData, uint64_t time,
+	uint32_t process, uint32_t collective, uint32_t procGroup,
+	uint32_t rootProc, uint32_t sent, uint32_t received, uint64_t duration, 
+	uint32_t source );
+
+int OTF_CopyHandler_EventComment( void* userData, uint64_t time, uint32_t process, 
+	const char* comment );
+
+int OTF_CopyHandler_BeginProcess( void* userData, uint64_t time, uint32_t process );
+
+int OTF_CopyHandler_EndProcess( void* userData, uint64_t time, uint32_t process );
+
+int OTF_CopyHandler_SnapshotComment( void* userData, uint64_t time,
+	uint32_t process, const char* comment );
+
+int OTF_CopyHandler_FileOperation( void* userData, uint64_t time, uint32_t fileid,
+	uint32_t process, uint64_t handleid, uint32_t operation, uint64_t bytes,
+	uint64_t duration, uint32_t source );
+	
+
+int OTF_CopyHandler_EnterSnapshot( void *userData, uint64_t time,
+	uint64_t originaltime, uint32_t function, uint32_t process,
+	uint32_t source );
+
+int OTF_CopyHandler_SendSnapshot( void *userData, uint64_t time,
+	uint64_t originaltime, uint32_t sender, uint32_t receiver,
+	uint32_t procGroup, uint32_t tag, uint32_t source );
+
+int OTF_CopyHandler_OpenFileSnapshot( void* userData, uint64_t time,
+	uint64_t originaltime, uint32_t fileid, uint32_t process, uint64_t handleid,
+	uint32_t source );
+
+
+int OTF_CopyHandler_SummaryComment( void * userData, uint64_t time,
+	uint32_t process, const char* comment );
+
+int OTF_CopyHandler_FunctionSummary( void* userData, uint64_t time,
+	uint32_t function, uint32_t process, uint64_t invocations,
+	uint64_t exclTime, uint64_t inclTime );
+
+int OTF_CopyHandler_FunctionGroupSummary( void* userData, uint64_t time,
+	uint32_t funcGroup, uint32_t process, uint64_t invocations,
+	uint64_t exclTime, uint64_t inclTime );
+
+int OTF_CopyHandler_MessageSummary( void* userData, uint64_t time, uint32_t process,
+	uint32_t peer, uint32_t comm, uint32_t type, uint64_t sentNumber,
+	uint64_t receivedNumber, uint64_t sentBytes, uint64_t receivedBytes );
+
+int OTF_CopyHandler_FileOperationSummary( void* userData, uint64_t time,
+	uint32_t fileid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+
+int OTF_CopyHandler_FileGroupOperationSummary( void* userData, uint64_t time,
+	uint32_t groupid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_COPYOTF_CopyHandler_R_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Definitions.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Definitions.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Definitions.h	(revision 97)
@@ -0,0 +1,173 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_Definitions.h
+ * 
+ *  @brief Provides many many macros for different purposes.
+ *
+ *  \ingroup misc
+ */
+
+
+#ifndef OTF_DEFINITIONS_H
+#define OTF_DEFINITIONS_H
+
+
+/* version information */
+
+#define OTF_VERSION_MAYOR	1
+#define OTF_VERSION_MINOR	3
+#define OTF_VERSION_SUB 	12
+#define OTF_VERSION_STRING	"jellyfish"
+
+/* version history:
+
+0.2.1 	"octopussy"
+0.3.1 	"starfish"
+0.3.2 	"starfish"
+0.4.0 	"starfish"
+0.4.1 	"starfish"
+0.5.0	"starfish"
+1.0.*	"starfish"
+1.1.*	"starfish"
+1.2.*	"pufferfish"
+1.3.*   "jellyfish"
+
+*/
+
+
+/* definitions of record type identifiers */
+
+
+/* Event records*/
+
+#define OTF_EVENTCOMMENT_RECORD					0
+#define OTF_COUNTER_RECORD						1
+#define OTF_ENTER_RECORD						2
+
+#define OTF_COLLOP_RECORD						5
+
+#define OTF_RECEIVE_RECORD						10
+#define OTF_SEND_RECORD							11
+#define OTF_LEAVE_RECORD						12
+
+#define OTF_BEGINPROCESS_RECORD					35
+#define OTF_ENDPROCESS_RECORD					36
+
+#define OTF_FILEOPERATION_RECORD				42
+
+/* Definition records*/
+
+#define OTF_DEFTIMERRESOLUTION_RECORD			13
+#define OTF_DEFPROCESS_RECORD					14
+#define OTF_DEFPROCESSGROUP_RECORD				15
+#define OTF_DEFFUNCTION_RECORD					16
+#define OTF_DEFFUNCTIONGROUP_RECORD				17
+#define OTF_DEFCOUNTER_RECORD					18
+#define OTF_DEFCOUNTERGROUP_RECORD				19
+#define OTF_DEFCOLLOP_RECORD					20
+#define OTF_DEFSCL_RECORD						21
+#define OTF_DEFSCLFILE_RECORD					22
+#define OTF_DEFVERSION_RECORD					23
+#define OTF_DEFCREATOR_RECORD					24
+#define OTF_DEFFILE_RECORD						25
+#define OTF_DEFFILEGROUP_RECORD					26
+
+
+#define OTF_FUNCTIONSUMMARY_RECORD				28
+#define OTF_FUNCTIONGROUPSUMMARY_RECORD			29
+#define OTF_MESSAGESUMMARY_RECORD				30
+#define OTF_FILEOPERATIONSUMMARY_RECORD			31
+#define OTF_FILEGROUPOPERATIONSUMMARY_RECORD	32
+
+#define OTF_DEFINITIONCOMMENT_RECORD			34
+
+#define OTF_ENTERSNAPSHOT_RECORD				37
+#define OTF_SENDSNAPSHOT_RECORD					38
+
+#define OTF_SUMMARYCOMMENT_RECORD				39
+#define OTF_SNAPSHOTCOMMENT_RECORD				40
+#define OTF_OPENFILESNAPSHOT_RECORD				43
+
+#define OTF_UNKNOWN_RECORD						41
+
+
+/* Number of records */
+#define OTF_NRECORDS							44
+
+/* Stream format definition */
+
+#define OTF_WSTREAM_FORMAT_SHORT		0
+#define OTF_WSTREAM_FORMAT_LONG			1
+
+
+/* Counter properties */
+
+/* 1st-2nd bit */
+#define OTF_COUNTER_TYPE_BITS		3
+#define OTF_COUNTER_TYPE_ACC		0
+#define OTF_COUNTER_TYPE_ABS		1
+
+/* 3rd-4th bit */
+#define OTF_COUNTER_SCOPE_BITS 		12
+#define OTF_COUNTER_SCOPE_START 	0
+#define OTF_COUNTER_SCOPE_POINT 	4
+#define OTF_COUNTER_SCOPE_LAST		8
+#define OTF_COUNTER_SCOPE_NEXT		12
+
+/* 6th-9th bit */
+#define OTF_COUNTER_VARTYPE_ISINTEGER(x) (x < 256)
+#define OTF_COUNTER_VARTYPE_ISSIGNED(x) ((x&32) == 32)
+#define OTF_COUNTER_VARTYPE_ISUNSIGNED(x) ((x&32) == 0)
+
+#define OTF_COUNTER_VARTYPE_BITS				480 /* 1111xxxxx */
+#define OTF_COUNTER_VARTYPE_UNSIGNED8			0 /* 0000 */
+#define OTF_COUNTER_VARTYPE_SIGNED8				32 /* 00001 */
+#define OTF_COUNTER_VARTYPE_UNSIGNED4			64 /* 0010 */
+#define OTF_COUNTER_VARTYPE_SIGNED4				96 /* 0011 */
+#define OTF_COUNTER_VARTYPE_UNSIGNED2			128 /* 0100 */
+#define OTF_COUNTER_VARTYPE_SIGNED2				160 /* 0101 */
+#define OTF_COUNTER_VARTYPE_FLOAT				256 /* 1000 */
+#define OTF_COUNTER_VARTYPE_DOUBLE				288 /* 1001 */
+
+
+
+#define OTF_COUNTER_PROP_DEFAULT	0
+
+
+/* Types of collective operations */
+
+#define OTF_COLLECTIVE_TYPE_UNKNOWN 	0
+#define OTF_COLLECTIVE_TYPE_BARRIER 	1
+#define OTF_COLLECTIVE_TYPE_ONE2ALL 	2
+#define OTF_COLLECTIVE_TYPE_ALL2ONE 	3
+#define OTF_COLLECTIVE_TYPE_ALL2ALL 	4
+
+
+/* File Operations */
+#define OTF_FILEOP_OPEN		0
+#define OTF_FILEOP_CLOSE	1
+#define OTF_FILEOP_READ		2
+#define OTF_FILEOP_WRITE	3
+#define OTF_FILEOP_SEEK		4
+
+
+/* return values for handlers. they are not yet evaluated!!! */
+
+/** When writing an own handler, use these macros to tell OTF, what to do.
+if you return OTF_RETURN_OK OTF continues reading the trace and calling the
+appropriate handlers. If you return OTF_RETURN_BREAK or OTF_RETURN_ABORT OTF
+stops reading immediately */
+#define OTF_RETURN_OK					0
+/** @see OTF_RETURN_OK */
+#define OTF_RETURN_BREAK				1
+/** @see OTF_RETURN_OK */
+#define OTF_RETURN_ABORT				1
+
+#define OTF_READ_ERROR					(uint64_t)-1
+#define OTF_READ_MAXRECORDS				(uint64_t)-2
+
+#endif /* OTF_DEFINITIONS_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_File.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_File.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_File.h	(revision 97)
@@ -0,0 +1,96 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_File.h
+ * 
+ *  @brief Provides a low-level API for accessing files.
+ *
+ *  \ingroup internal
+ */
+
+
+#ifndef OTF_FILE_H
+#define OTF_FILE_H
+
+
+#include "OTF_FileManager.h"
+#include "OTF_Filenames.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** mode determining what to do with a file */
+enum enum_OTF_FileMode {
+
+	OTF_FILEMODE_NOTHING = 0,
+	OTF_FILEMODE_READ= 1, 
+	OTF_FILEMODE_WRITE= 2, 
+	OTF_FILEMODE_SEEK= 3
+};
+typedef enum enum_OTF_FileMode OTF_FileMode;
+
+/** status of a file */
+enum enum_OTF_FileStatus {
+
+	OTF_FILESTATUS_ACTIVE= 1, 
+	OTF_FILESTATUS_SUSPENDED= 2,
+	OTF_FILESTATUS_CLOSED= 3
+};
+typedef enum enum_OTF_FileStatus OTF_FileStatus;
+
+/** initialize a OTF_File object */
+void OTF_File_init( OTF_File* o );
+
+/** finalize a OTF_File object */
+void OTF_File_finalize( OTF_File* o );
+
+/** open an OTF_File */
+OTF_File* OTF_File_open( const char* filename, OTF_FileManager* manager,
+	OTF_FileMode mode );
+
+/** OTF_File to an OTF_File */
+size_t OTF_File_write( OTF_File* file, const void* ptr, size_t size );
+
+/** read from an OTF_File */
+size_t OTF_File_read( OTF_File* file, void* ptr, size_t size );
+
+/** seek absolute position in an OTF_File */
+int OTF_File_seek( OTF_File* file, uint64_t pos );
+
+/** get absolut position from an OTF_File */
+uint64_t OTF_File_tell( OTF_File* file );
+
+/** return the file size in bytes*/
+uint64_t OTF_File_size( OTF_File* file );
+
+/** close OTF_File */
+int OTF_File_close( OTF_File* file );
+
+/** return OTF_File status */
+OTF_FileStatus OTF_File_status( OTF_File* file );
+
+
+/** suspend OTF_File - internal use only. */
+void OTF_File_suspend( OTF_File* file );
+
+/** re-open the file when closed or suspended - internal use only. 
+return 1 on success, 0 otherwise */
+int OTF_File_revive( OTF_File* file, OTF_FileMode mode );
+
+void OTF_File_setZBufferSize( OTF_File* file, uint32_t size );
+
+
+/** internal use */
+OTF_File* OTF_File_open_zlevel( const char* filename, OTF_FileManager* manager,
+	OTF_FileMode mode, OTF_FileCompression compression );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_FILE_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_FileManager.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_FileManager.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_FileManager.h	(revision 97)
@@ -0,0 +1,85 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_FileManager.h
+ * 
+ *  @brief Manages file handles.
+ *
+ *  i.e. Opens, closes and suspends files, if there are not enough
+ *  filehandles available.
+ *
+ *  \ingroup fm
+ */
+
+/**
+ * \defgroup fm File Manager Interface
+ *
+ * The file manager schedules an unlimited number OTF_Files to a limited
+ * number of actual open OS files. Therefore all open are registered with
+ * this manager. When a file is requested while no more OS files are
+ * available any of the other files are suspended, i.i. the OS file is
+ * closed.
+ */
+
+
+#ifndef OTF_FILEMANAGER_H
+#define OTF_FILEMANAGER_H
+
+
+#include "OTF_inttypes.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct struct_OTF_File;
+typedef struct struct_OTF_File OTF_File;
+
+
+struct struct_OTF_FileManager;
+/** file manager object \ingroup fm */
+typedef struct struct_OTF_FileManager OTF_FileManager;
+
+
+/** Generates a new file manager with a maximum number of files that are allowed
+to be open simultaneously. \ingroup fm */
+OTF_FileManager* OTF_FileManager_open( uint32_t number );
+
+/** Closes the file manager \ingroup fm */
+void OTF_FileManager_close( OTF_FileManager* m );
+
+/** Returns the number of files currently open. */
+uint32_t OTF_FileManager_getCount( OTF_FileManager* m );
+
+/** Returns the numbner of files allowed to be open simultaneously. */
+uint32_t OTF_FileManager_getNumber( OTF_FileManager* m );
+
+/** Sets the number of files allowed to be open simultaneously. */
+uint32_t OTF_FileManager_setNumber( OTF_FileManager* m, uint32_t number );
+
+/** Ensure there is a free file handle available after this call. 
+return 1 on success, 0 otherwise (which is not supposed to happen) */
+int OTF_FileManager_guaranteeFile( OTF_FileManager* m );
+
+/** Registers the 'file' as open. Return 1 on success, 0 otherwise. */
+int OTF_FileManager_registerFile( OTF_FileManager* m, OTF_File* file );
+
+/** Marks currently opened 'file' as used which is important for the 
+scheduling strategy, i.e. the internal decision which file to suspend next.
+return 1 on success or 0 for an suspended file. */
+int OTF_FileManager_touchFile( OTF_FileManager* m, OTF_File* file );
+
+/** Suspend an open file explicitly. this may be called externaly or 
+internally. Return 1 on success, 0 otherwise. */
+int OTF_FileManager_suspendFile( OTF_FileManager* m, OTF_File* file );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_FILEMANAGER_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Filenames.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Filenames.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Filenames.h	(revision 97)
@@ -0,0 +1,70 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_Filenames.h
+ * 
+ *  @brief Handles file naming issues.
+ *
+ *  \ingroup internal
+ */
+
+
+#ifndef OTF_FILENAMES
+#define OTF_FILENAMES
+
+
+#include "OTF_inttypes.h"
+#include "OTF_Definitions.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/*#define OTF_FILETYPE_MASTER 		0
+#define OTF_FILETYPE_GLOBAL_DEF 	1
+#define OTF_FILETYPE_DEF 			2
+#define OTF_FILETYPE_EVENT  		3
+#define OTF_FILETYPE_SNAPS  		4
+#define OTF_FILETYPE_STATS  		5*/
+#define OTF_FILETYPE_MASTER 		16
+#define OTF_FILETYPE_GLOBAL_DEF 	32
+#define OTF_FILETYPE_DEF 			64
+#define OTF_FILETYPE_EVENT  		128
+#define OTF_FILETYPE_SNAPS  		256
+#define OTF_FILETYPE_STATS  		512
+#define OTF_FILETYPE_BITS 			(16+32+64+128+256+512)
+typedef uint32_t OTF_FileType;
+
+/* zlevel has to be 0-9 */
+#define OTF_FILECOMPRESSION_UNCOMPRESSED 	0
+/* default compression level */
+#define OTF_FILECOMPRESSION_COMPRESSED  	4
+#define OTF_FILECOMPRESSION_BITS			(1+2+4+8)
+typedef uint32_t OTF_FileCompression;
+
+
+/** provide a name stub, a stream id and the type of file. 
+the function will create the proper filename in 'ret'. ret may be 
+pre-allocated with length 'l' or NULL with 'l=0'. in the latter case 
+memory is allocated via malloc internally but has to be freed later on.
+on success the resulting string is returned, return NULL indicates an error. */
+char* OTF_getFilename( const char* namestub, uint32_t id, OTF_FileType type, 
+	unsigned int l, char* ret );
+
+
+/** strip the a filename from the ".otf" suffix if present */
+char* OTF_stripFilename( const char* filename );
+
+
+/** DEPRICATED Check whether a file exists or not. Return 1 on success. */
+int OTF_fileExists( const char* filename );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_FILENAMES */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_HandlerArray.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_HandlerArray.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_HandlerArray.h	(revision 97)
@@ -0,0 +1,1070 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_HandlerArray.h
+ *
+ *  @brief Provides read access to OTF traces which consist of multiple
+ *  streams.
+ *
+ *  \ingroup handler
+ *  \ingroup ha
+ */
+
+/** \defgroup handler Handler Interface
+ *
+ * In the following, the handler interfaces for all record types are
+ * specified. The signature of callback handler functions is equal to the
+ * signature of corresponding record write functions except for the first
+ * argument. The first argument common to all callback handler functions is
+ * \em userData -- a generic pointer to custom user data. The second common
+ * argument to all callback hander functions is \em stream which identifies the
+ * stream where the definition occurred. A stream parameter = 0 indicates a
+ * global definition which is the default.
+ */
+
+/** 
+ * \defgroup ha Handler Array Interface
+ *
+ * Using this interface you can setup a handler array for reading traces.
+ * 
+ */
+
+
+#ifndef OTF_HANDLERARRAY_H
+#define OTF_HANDLERARRAY_H
+
+
+#include "OTF_Writer.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** Generic function pointer for OTF record handlers. \ingroup ha*/
+typedef int (OTF_FunctionPointer) ( void *userData, ... );
+
+
+/** Object structure which holds OTF record handlers. */
+struct struct_OTF_HandlerArray {
+
+        /** Array of function pointer. */
+        OTF_FunctionPointer** pointer;
+
+        /** Array of first handler arguments. */
+        void** firsthandlerarg;
+};
+
+/** Object type which holds OTF record handlers. \ingroup ha */
+typedef struct struct_OTF_HandlerArray OTF_HandlerArray;
+
+
+/** Open a new array of handlers. \ingroup ha */
+OTF_HandlerArray* OTF_HandlerArray_open( void );
+
+/** Close and delete a OTF_HandlerArray object. \ingroup ha */
+int OTF_HandlerArray_close( OTF_HandlerArray* handlers );
+
+/** Assign the function pointer to your own handler of the given record
+    type. \ingroup ha */
+int OTF_HandlerArray_setHandler( OTF_HandlerArray* handlers, 
+        OTF_FunctionPointer* pointer, uint32_t recordtype );
+
+/** Assign the first argument to your own handler of the given record type.
+\ingroup ha */
+int OTF_HandlerArray_setFirstHandlerArg( OTF_HandlerArray* handlers, 
+        void* firsthandlerarg, uint32_t recordtype );
+
+/** Provide copy handlers to every record type. \ingroup ha */
+int OTF_HandlerArray_getCopyHandler( OTF_HandlerArray* handlers, 
+        OTF_Writer* writer );
+
+
+/* Handlers for OTF definition records *****+++***************************** */
+
+
+/**
+ * Provides a comment record.
+ *
+ * @param userData        Pointer to user data which can be set with
+ *                        OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream          Identifies the stream to which this definition
+ *                        belongs to. stream = 0 represents a global
+ *                        definition.  
+ * @param comment         Arbitrary comment string.
+ *
+ * @return                OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                        OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefinitionComment( void* userData, 
+                                   uint32_t stream, 
+                                   const char* comment );
+
+
+/**
+ * Provides the timer resolution. All timed event records need to be
+ * interpreted according to this definition. By default, a timer resolution of
+ * 1 us i.e. 1,000,000 clock ticks is assumed.
+ *
+ * @param userData        Pointer to user data which can be set with
+ *                        OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream          Identifies the stream to which this definition
+ *                        belongs to. stream = 0 represents a global
+ *                        definition.  
+ * @param ticksPerSecond  Clock ticks per second of the timer.
+ *
+ * @return                OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                        OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefTimerResolution( void* userData, 
+                                    uint32_t stream,
+                                    uint64_t ticksPerSecond );
+
+
+/**
+ * Provides a process definition. 
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream    Identifies the stream to which this definition
+ *                  belongs to. stream = 0 represents a global
+ *                  definition.  
+ * @param process   Arbitrary but unique process identifier > 0.        
+ * @param name      Name of the process e.g. "Process X".
+ * @param parent    Previously declared parent process identifier or 0 if 
+ *                  process has no parent.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefProcess( void* userData, 
+                            uint32_t stream,
+                            uint32_t process, 
+                            const char* name, 
+                            uint32_t parent );
+
+
+/**
+ * Provides a process group definition.
+ *
+ * OTF supports groups of processes. Their main objective is to classify
+ * processes depending on arbitrary characteristics. Processes can reside
+ * in multiple groups. This record type is optional.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream         Identifies the stream to which this definition
+ *                       belongs to. stream = 0 represents a global
+ *                       definition.  
+ * @param procGroup      Arbitrary but unique process group identifier > 0.
+ * @param name           Name of the process group e.g. "Well Balanced".
+ * @param numberOfProcs  The number of processes in the process group.
+ * @param procs          Vector of process identifiers as provided by
+ *                       OTF_Handler_DefProcess().
+ *
+ * @return               OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                       OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefProcessGroup( void* userData, 
+                                 uint32_t stream,
+                                 uint32_t procGroup, 
+                                 const char* name, 
+                                 uint32_t numberOfProcs, 
+                                 const uint32_t* procs );
+
+
+/**
+ * Provides a function definition.
+ *
+ * Defines a function of the given name. Functions can optionally belong to a
+ * certain function group provided by the
+ * OTF_Handler_DefFunctionGroup() handler. A source code reference can
+ * be provided aswell.
+ *
+ * @param userData   Pointer to user data which can be set with
+ *                   OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream     Identifies the stream to which this definition
+ *                   belongs to. stream = 0 represents a global
+ *                   definition.  
+ * @param func       Arbitrary but unique function identifier > 0.
+ * @param name       Name of the function e.g. "DoSomething".
+ * @param funcGroup  A function group identifier preliminary provided by 
+ *                   OTF_Handler_DefFunctionGroup() or 0 for no
+ *                   function group assignment.        
+ * @param source     Reference to the function's source code location 
+ *                   preliminary provided by OTF_Handler_DefScl() or
+ *                   0 for no source code location assignment.
+ *
+ * @return           OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                   OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefFunction( void* userData, 
+                             uint32_t stream,
+                             uint32_t func, 
+                             const char* name, 
+                             uint32_t funcGroup, 
+                             uint32_t source );
+
+
+/**
+ * Provides a function group definition.
+ *
+ * @param userData   Pointer to user data which can be set with
+ *                   OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream     Identifies the stream to which this definition
+ *                   belongs to. stream = 0 represents a global
+ *                   definition.  
+ * @param funcGroup  An arbitrary but unique function group identifier > 0.
+ * @param name       Name of the function group e.g. "Computation".
+ *
+ * @return           OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                   OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefFunctionGroup( void* userData, 
+                                  uint32_t stream,
+                                  uint32_t funcGroup, 
+                                  const char* name );
+
+
+/**
+ * Provides a collective operation definition.
+ *
+ * @param userData    Pointer to user data which can be set with
+ *                    OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream      Identifies the stream to which this definition
+ *                    belongs to. stream = 0 represents a global
+ *                    definition.  
+ * @param collOp      An arbitrary but unique collective op. identifier > 0.
+ * @param name        Name of the collective operation e.g. "MPI_Bcast".
+ * @param type        One of the five supported collective classes:
+ *                    OTF_COLLECTIVE_TYPE_UNKNOWN (default),
+ *                    OTF_COLLECTIVE_TYPE_BARRIER,
+ *                    OTF_COLLECTIVE_TYPE_ONE2ALL,
+ *                    OTF_COLLECTIVE_TYPE_ALL2ONE,
+ *                    OTF_COLLECTIVE_TYPE_ALL2ALL.
+ *
+ * @return            OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                    OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefCollectiveOperation( void* userData, 
+                                        uint32_t stream,
+                                        uint32_t collOp,
+                                        const char* name,
+                                        uint32_t type );
+
+
+/**
+ * Provides a counter definition.
+ *
+ * @param userData      Pointer to user data which can be set with
+ *                      OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream        Identifies the stream to which this definition
+ *                      belongs to. stream = 0 represents a global
+ *                      definition.  
+ * @param counter       An arbitrary but unique counter identifier.
+ * @param name          Name of the counter e.g. "Cache Misses".
+ * @param properties    A combination of a type, scope and vartype counter property.
+ *                      OTF_COUNTER_TYPE_ACC (default) represents a counter
+ *                      with monotonously increasing values e.g. a FLOP 
+ *                      counter. OTF_COUNTER_TYPE_ABS on the other hand 
+ *                      defines a counter with alternating absolute values e.g.
+ *                      the memory usage of a process. The following counter
+ *                      measurement scopes are supported: 
+ *                      OTF_COUNTER_SCOPE_START (default) always refers to the 
+ *                      start of the process, OTF_COUNTER_SCOPE_POINT refers
+ *                      to exactly this moment in time, OTF_COUNTER_SCOPE_LAST
+ *                      relates to the previous measurement, and
+ *                      OTF_COUNTER_SCOPE_NEXT to the next measurement.
+ *                      Examples: OTF_COUNTER_TYPE_ACC + 
+ *                      OTF_COUNTER_SCOPE_START should be used for most 
+ *                      standard hardware (PAPI) counters. 
+ *                      OTF_COUNTER_TYPE_ABS + OTF_COUNTER_SCOPE_POINT could
+ *                      be used to record information 'spikes'.
+ *                      OTF_COUNTER_TYPE_ABS + OTF_COUNTER_SCOPE_NEXT works
+ *                      for memory allocation recording.
+ *                      The data type can be one of the following:
+ *                      COUNTER_VARTYPE_{UNSIGNED8,SIGNED8,UNSIGNED4,SIGNED4,
+ *                      UNSIGNED2,SIGNED2,DOUBLE,FLOAT}
+ *                      You may also use COUNTER_VARTYPE_IS{INTEGER,SIGNED,
+ *                      UNSIGNED}(property) to a get a clue about the data type.
+ * @param counterGroup  A previously defined counter group identifier or 0 for
+ *                      no group.
+ * @param unit          Unit of the counter e.g. "#" for "number of..." or 0 
+ *                      for no unit. 
+ *
+ * @return              OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                      OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefCounter( void* userData, 
+                            uint32_t stream,
+                            uint32_t counter,
+                            const char* name, 
+                            uint32_t properties,
+                            uint32_t counterGroup,
+                            const char* unit );
+
+
+/**
+ * Provides a counter group definition.
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.  
+ * @param counterGroup An arbitrary but unique counter group identifier > 0.
+ * @param name         Counter group name.
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefCounterGroup( void* userData, 
+                                 uint32_t stream,
+                                 uint32_t counterGroup, 
+                                 const char* name );
+
+
+/**
+ * Provides a source code location (SCL).
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.  
+ * @param source       Arbitrary but unique source code location 
+ *                     identifier > 0.
+ * @param sourceFile   Previously defined source file identifier. See 
+ *                     OTW_Handler_DefSclFile(). 
+ * @param line         Line number.
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefScl( void* userData, 
+                        uint32_t stream,
+                        uint32_t source,
+                        uint32_t sourceFile, 
+                        uint32_t line );
+
+
+/**
+ * Provides a source code location (SCL) file.
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.  
+ * @param sourceFile   Arbitrary but unique source code location 
+ *                     identifier != 0.
+ * @param name         File name. 
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefSclFile( void* userData, 
+                            uint32_t stream,
+                            uint32_t sourceFile,
+                            const char* name );
+
+
+/**
+ * Provides file creator information. 
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.  
+ * @param creator      String which identifies the creator of the 
+ *                     file e.g. "TAU Version x.y.z".
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefCreator( void* userData, 
+                            uint32_t stream,
+                            const char* creator );
+
+
+/**
+ * Provides information on the traceÂŽs otf-version. This record can only be read
+ * and not be written.
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.
+ * @param major        major version number
+ * @param minor        minor version number
+ * @param sub          sub version number
+ * @param string       string identifing the version
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefVersion( void* userData,
+                            uint32_t stream,
+                            uint8_t major,
+                            uint8_t minor,
+                            uint8_t sub,
+                            const char* string );
+
+
+/**
+ * Provides a file definition
+ * NOTE: this is experimental
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.
+ *
+ * @param token        Arbitrary, unique identifier of the file.
+ *                     Has to be > 0.
+ *
+ * @param name         name of the file
+ *
+ * @param group        A previously defined file group identifier or 0 for
+ *                     no group.
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefFile( void* userData,
+                         uint32_t stream,
+                         uint32_t token,
+                         const char *name,
+                         uint32_t group );
+
+
+/**
+ * Provides a file group definition
+ * NOTE: this is experimental
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param stream       Identifies the stream to which this definition
+ *                     belongs to. stream = 0 represents a global
+ *                     definition.
+ *
+ * @param token        Arbitrary, unique identifier of the file group
+ *                     Has to be > 0.
+ *
+ * @param name         Name of the file group
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_DefFileGroup( void* userData,
+                              uint32_t stream,
+                              uint32_t token,
+                              const char *name );
+
+/* Handlers for OTF event records ****************************************** */
+
+
+/**
+ * Provides a function entry event.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      The time when the function entry took place.
+ * @param function  Function which has been entered as defined with 
+ *                  OTF_Writer_defFunction.
+ * @param process   Process where action took place.
+ * @param source    Explicit source code location identifier > 0 or 0 if 
+ *                  no source information available.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_Enter( void* userData, 
+                       uint64_t time, 
+                       uint32_t function, 
+                       uint32_t process, 
+                       uint32_t source );
+
+
+/**
+ * Provides a function leave event.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      The time when the function leave took place.
+ * @param function  Function which was left or 0 if stack integrety checking
+ *                  is not available.
+ * @param process   Process where action took place.
+ * @param source    Explicit source code location identifier > 0 or 0 if 
+ *                  no source information available.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_Leave( void* userData, 
+                       uint64_t time, 
+                       uint32_t function, 
+                       uint32_t process, 
+                       uint32_t source );
+
+
+/**
+ * Provides a message send event.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      The time when the message was send.
+ * @param sender    Sender of the message.
+ * @param receiver  Receiver of the message.
+ * @param group     Process-group to which sender and receiver belong to or 
+ *                  0 for no group assignment.
+ * @param type      Message type information > 0 or 0 for no information.
+ * @param length    Optional message length information.
+ * @param source    Explicit source code location identifier > 0 or 0 if 
+ *                  no source information available.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_SendMsg( void* userData, 
+                         uint64_t time, 
+                         uint32_t sender, 
+                         uint32_t receiver, 
+                         uint32_t group, 
+                         uint32_t type, 
+                         uint32_t length, 
+                         uint32_t source );
+
+
+/**
+ * Provides a message retrieval event.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      The time when the message was received.
+ * @param recvProc  Identifier of receiving process.
+ * @param sendProc  Identifier of sending process.
+ * @param group     Process-group to which sender and receiver belong to or 
+ *                  0 for no group assignment.
+ * @param type      Message type information > 0 or 0 for no information.
+ * @param length    Optional message length information.
+ * @param source    Explicit source code location identifier > 0 or 0 if 
+ *                  no source information available.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_RecvMsg( void* userData, 
+                         uint64_t time, 
+                         uint32_t recvProc, 
+                         uint32_t sendProc, 
+                         uint32_t group, 
+                         uint32_t type, 
+                         uint32_t length, 
+                         uint32_t source );
+
+
+/**
+ * Provides a counter measurement.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Time when counter was measured.
+ * @param process   Process where counter measurment took place.
+ * @param counter   Counter which was measured. 
+ * @param value     Counter value.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_Counter( void* userData, 
+                         uint64_t time, 
+                         uint32_t process, 
+                         uint32_t counter, 
+                         uint64_t value );
+
+
+/**
+ * Provides a collective operation member event.
+ *
+ * @param userData    Pointer to user data which can be set with
+ *                    OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time        Time when collective operation was entered by member.
+ * @param process     Process identifier i.e. collective member. 
+ * @param collective  Collective identifier as defined with
+ *                    OTF_Handler_DefCollectiveOperation(). 
+ * @param procGroup   Group of processes participating in this collective.
+ * @param rootProc    Root process if != 0.
+ * @param sent        Data volume sent by member or 0.
+ * @param received    Data volume received by member or 0.
+ * @param duration    Time spent in collective operation.
+ * @param source      Explicit source code location or 0.
+ *
+ * @return            OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                    OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_CollectiveOperation( void* userData, 
+                                     uint64_t time, 
+                                     uint32_t process, 
+                                     uint32_t collective, 
+                                     uint32_t procGroup, 
+                                     uint32_t rootProc, 
+                                     uint32_t sent, 
+                                     uint32_t received, 
+                                     uint64_t duration, 
+                                     uint32_t source );
+
+
+/**
+ * Provide a comment record.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_EventComment( void* userData, 
+                              uint64_t time, 
+                              uint32_t process, 
+                              const char* comment );
+
+
+/**
+ * Provides a process creation event.
+ *
+ * Marks the explicit begin of a process. This event precedes the very first
+ * event of the respective process and should carry the same time stamp. This
+ * is especially useful with on-line analysis. It tells whether there will be
+ * additional records for the given process or not. Without this record type,
+ * it could only be guessed that there might not follow more events after a
+ * process has reached the bottom of the call stack.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Time when process was referenced for the first time. 
+ * @param process   Process identifier > 0.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_BeginProcess( void* userData, 
+                              uint64_t time, 
+                              uint32_t process );
+
+
+/**
+ * Provides a process destruction event.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Time when process is referenced for the last time. 
+ *                  Process identifiers must not be recycled!
+ * @param process   Process identifier > 0.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_EndProcess( void* userData, 
+                            uint64_t time, 
+                            uint32_t process );
+
+
+/**
+ * Provides a file operation event
+ * NOTE: this is experimental
+ *
+ * @param userData    Pointer to user data which can be set with
+ *                    OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time        Time when process is referenced for the last time. 
+ *                    Process identifiers must not be recycled!
+ * @param process     Process identifier > 0.
+ *
+ * @param handleid    Unique identifier. This parameter is important
+ *                    for files that are opened multiple times at the same time,
+ *                    to match the close to the correct open.
+ *                    This number has to be unique for every opened file (
+ *                    Files with the same id must have different handleid !!! ).
+ *                    Recommendation: use the timestamp of the openfile record,
+ *                    or an increasing(with every fileopen record) variable for
+ *                    this.
+ *
+ * @param operation   kind of operation done on the file.
+ *                    has to be OTF_FILEOP_{OPEN,CLOSE,READ,WRITE,SEEK}
+ *
+ * @param bytes       Should be 0 for open and close.
+ *                    Number of read/written bytes for read/write operations.
+ *                    New position in the file after a seek operation.
+ *
+ * @param duration    Time spent in the file operation.
+ *
+ * @param source      Explicit source code location or 0.
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_FileOperation( void* userData,
+                               uint64_t time,
+                               uint32_t fileid,
+                               uint32_t process,
+                               uint64_t handleid,
+                               uint32_t operation,
+                               uint64_t bytes,
+                               uint64_t duration,
+                               uint32_t source );
+
+
+/* Handlers for OTF snapshot records *************************************** */
+
+
+/**
+ * Provides a snapshot comment.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+ 
+int OTF_Handler_SnapshotComment( void* userData, 
+                                     uint64_t time, 
+                                     uint32_t process, 
+                                     const char* comment );
+
+
+/** provides information about a past function call at the time 'originaltime'.
+Parameters 'time', 'function', 'process' ,'source' and the return value have the
+same meaning as in OTF_Handler_Enter(). 
+\ingroup handler */
+int OTF_Handler_EnterSnapshot( void *userData, 
+                           uint64_t time, 
+                           uint64_t originaltime, 
+                           uint32_t function, 
+                           uint32_t process, 
+                           uint32_t source );
+
+
+/** provides information about a past message send operation at the time
+'originaltime'. Parameters 'time', 'sender', 'receiver', 'procGroup', 'tag',
+'source' and the return value have the same meaning as in OTF_Handler_SendMsg().
+\ingroup handler */
+int OTF_Handler_SendSnapshot( void *userData,
+                           uint64_t time,
+                           uint64_t originaltime,
+                           uint32_t sender,
+                           uint32_t receiver,
+                           uint32_t procGroup,
+                           uint32_t tag,
+                           uint32_t source );
+
+
+/**
+ * Provides a snapshot record for opened(and not yet closed) files
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time         Current timestamp.
+ * @param originaltime Timestamp when the file has been opened.
+ * @param process      Process identifier.
+ * @param handleid     Unique file open identifier. @see OTF_Handler_FileOperation()
+ * @param source       Optional reference to source code.
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_OpenFileSnapshot( void* userData,
+                                  uint64_t time,
+                                  uint64_t originaltime,
+                                  uint32_t fileid,
+                                  uint32_t process,
+                                  uint64_t handleid,
+                                  uint32_t source );
+
+
+/* Handlers for OTF summary records **************************************** */
+
+
+/** Provides a summary comment.
+ *
+ * @param userData  Pointer to user data which can be set with
+ *                  OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                  OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+ 
+int OTF_Handler_SummaryComment( void * userData, 
+                                uint64_t time, 
+                                uint32_t process, 
+                                const char* comment );
+
+
+/**
+ * Provides summarized information for a given function.
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time         Time when summary was computed. 
+ * @param function     Function as defined with 
+ *                     OTF_Handler_DefFunction.
+ * @param process      Process of the given function.
+ * @param invocations  Number of invocations.
+ * @param exclTime     Time spent exclusively in the given function.
+ * @param inclTime     Time spent in the given function including all
+ *                     sub-routine calls.
+ *
+ * @return            OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                    OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_FunctionSummary( void* userData, 
+                                 uint64_t time, 
+                                 uint32_t function, 
+                                 uint32_t process, 
+                                 uint64_t invocations, 
+                                 uint64_t exclTime, 
+                                 uint64_t inclTime );
+
+
+/**
+ * Provides summarized information for a given group of functiongroups.
+ *
+ * @param userData     Pointer to user data which can be set with
+ *                     OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time         Time when summary was computed. 
+ * @param funcGroup    Function group as defined with 
+ *                     OTF_Handler_DefFunctionGroup.
+ * @param process      Process of the given function group.
+ * @param invocations  Number of invocations.
+ * @param exclTime     Time spent exclusively in the given function group.
+ * @param inclTime     Time spent in the given function group including all
+ *                     sub-routine calls.
+ *
+ * @return             OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                     OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_FunctionGroupSummary( void* userData, 
+                                      uint64_t time,  
+                                      uint32_t funcGroup,  
+                                      uint32_t process,  
+                                      uint64_t invocations,  
+                                      uint64_t exclTime,  
+                                      uint64_t inclTime );
+
+
+/**
+ * Provides summarized information for a given message type.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time           Time when summary was computed. 
+ * @param process        Process where messages originated.
+ * @param peer           Process where the message is sent to
+ * @param comm           Communicator of message summary
+ * @param type           Message type/tag.
+ * @param sentNumber     The number of messages sent.
+ * @param receivedNumber The number of messages received.
+ * @param sentBytes      The number of bytes sent via messages of the given
+ *                       type.
+ * @param receivedBytes  The number of bytes received through messages of the 
+ *                       given type.
+ *
+ * @return               OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                       OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_MessageSummary( void* userData,
+                                uint64_t time,
+                                uint32_t process,
+                                uint32_t peer,
+                                uint32_t comm,
+                                uint32_t type,
+                                uint64_t sentNumber,
+                                uint64_t receivedNumber,
+                                uint64_t sentBytes,
+                                uint64_t receivedBytes );
+
+
+/**
+ * Provides summarized information about file operations.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time           Time when summary was computed.
+ * @param fileid         File identifier or 0 for all files.
+ * @param process        Process where file operations occured.
+ * @param nopen          Number of open events.
+ * @param nclose         Number of close events.
+ * @param nread          Number of read events.
+ * @param nwrite         Number of write events.
+ * @param nseek          Number of seek events.
+ * @param bytesread      Number of bytes read.
+ * @param byteswrite     Number of bytes written.
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_FileOperationSummary( void* userData,
+                                      uint64_t time,
+                                      uint32_t fileid,
+                                      uint32_t process,
+                                      uint64_t nopen,
+                                      uint64_t nclose,
+                                      uint64_t nread,
+                                      uint64_t nwrite,
+                                      uint64_t nseek,
+                                      uint64_t bytesread,
+                                      uint64_t byteswrite );
+
+
+/**
+ * Provides summarized information about file operations in a file group.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time           Time when summary was computed.
+ * @param groupid        Group identifier or 0 for all files.
+ * @param process        Process where file operations occured.
+ * @param nopen          Number of open events.
+ * @param nclose         Number of close events.
+ * @param nread          Number of read events.
+ * @param nwrite         Number of write events.
+ * @param nseek          Number of seek events.
+ * @param bytesread      Number of bytes read.
+ * @param byteswrite     Number of bytes written.
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_FileGroupOperationSummary( void* userData,
+                                           uint64_t time,
+                                           uint32_t groupid,
+                                           uint32_t process,
+                                           uint64_t nopen,
+                                           uint64_t nclose,
+                                           uint64_t nread,
+                                           uint64_t nwrite,
+                                           uint64_t nseek,
+                                           uint64_t bytesread,
+                                           uint64_t byteswrite );
+
+
+/**
+ * Can be used to handle records which cannot be read.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time           Time when summary was computed. 
+ * @param process        If 'time' equals (uin64_t) -1, the unknown record
+ *                       is a definiton record and 'process'
+ *                       represents the streamid of the record.
+ *                       If 'time' has a valid value ( not (uint64)-1 ) the
+ *                       unknown record is an event-, statistics- or
+ *                       snapshotrecord and 'process' represents
+ *                       the processid of the record.
+ * @param record         string which contains the record.
+ *
+ * @return               OTF_RETURN_ABORT  for aborting the reading process immediately
+ *                       OTF_RETURN_OK     for continue reading
+ *
+ * \ingroup handler
+ */
+int OTF_Handler_UnknownRecord( void *userData,
+                              uint64_t time,
+                              uint32_t process,
+                              const char *record );
+
+
+/*
+ * Provides summarized information about a counter.
+ *
+ * @param userData       Pointer to user data which can be set with
+ *                       OTF_HandlerArray_setFirstHandlerArg(). 
+ * @param time           Time when summary was computed. 
+ * @param process        Process where messages originated.
+ * @param peer           Token of counter.
+ * @param value          Counter Value at current time.
+ *
+ * \ingroup handler
+ */
+/*int OTF_Handler_CounterSummary( void* userData, 
+                                uint64_t time, 
+                                uint32_t process, 
+                                uint32_t counterid, 
+                                uint64_t value );
+*/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_HANDLERARRAY_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_MasterControl.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_MasterControl.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_MasterControl.h	(revision 97)
@@ -0,0 +1,463 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_MasterControl.h
+ *
+ *  @brief Provides access to process-stream-mapping, which are located in
+ *  .otf files.
+ *
+ *  \ingroup mc
+ */
+
+/** \defgroup mc Master Control Interface 
+ *
+ * This interface is dedicated to managing master control files ( *.otf )
+ * A master control file contains a mapping from process streams
+ * to processes and vice versa.
+ *
+ * \section mc_example A simple Example
+ *
+ *  This is example will create a simple mapping and read it again to
+ *  show how reading and writing works with the master control file.
+ *
+ *  The need for creating your own master control file arises when you are not
+ *  using the highlevel reader/writer, but the stream reader/writer.
+ *
+ *
+ *  \code
+ *  #include <stdio.h>
+ *  #include <assert.h>
+ *  #include "otf.h"
+ *  
+ *  int main( int argc, char** argv ) {
+ *  \endcode
+ *
+ *      Declare a couple of variables.
+ *      \code
+ *      uint32_t streamcount;
+ *      uint32_t a;
+ *      uint32_t i;
+ *      OTF_MapEntry* entry;
+ *      OTF_FileManager* manager;
+ *      OTF_MasterControl* mc;
+ *      \endcode
+ *  
+ *      Initialize the file manager and the mastercontrol.
+ *      \code
+ *      manager= OTF_FileManager_open( 100 );
+ *      assert( manager );
+ *  
+ *      mc = OTF_MasterControl_new( manager );
+ *      \endcode
+ *  
+ *      Add four processes (100,101,102,103) to two streams (1,2)
+ *      \code
+ *      OTF_MasterControl_append( mc, 1, 100 );
+ *      OTF_MasterControl_append( mc, 1, 101 );
+ *      OTF_MasterControl_append( mc, 2, 102 );
+ *      OTF_MasterControl_append( mc, 2, 103 );
+ *      \endcode
+ *  
+ *      Write everything to the file "mytrace.otf"
+ *      and close the master control.
+ *      \code
+ *      OTF_MasterControl_write( mc, "mytrace" );
+ *      OTF_MasterControl_close( mc );
+ *      \endcode
+ *
+ *      Now initialize the master control structure and read the
+ *      newly written master control file.
+ *      \code
+ *      mc = OTF_MasterControl_new( manager );
+ *      OTF_MasterControl_read( mc, "mytrace" );
+ *      \endcode
+ *  
+ *      Visit all stream-process pairs and print them out
+ *      \code
+ *      streamcount = OTF_MasterControl_getCount( mc );
+ *  
+ *      for( i = 0; i < streamcount; ++i ) {
+ *          entry = OTF_MasterControl_getEntryByIndex( mc, i );
+ *          for( a = 0; a < entry->n; ++a ) {
+ *              printf( " stream %u contains process %u\n", entry->argument,
+ *                      entry->values[a] );
+ *          }
+ *      }
+ *      \endcode
+ *
+ *      Clean everything up before exiting the program
+ *      \code
+ *      OTF_MasterControl_close( mc );
+ *
+ *  
+ *      return 0;
+ *  }
+ *  \endcode
+ *
+ * Compile this using $ gcc -o test test.c `otfconfig --libs`.
+ *
+ * The program will show this output:
+ * \verbatim
+ *  stream 1 contains process 100
+ *  stream 1 contains process 101
+ *  stream 2 contains process 102
+ *  stream 2 contains process 103 \endverbatim
+ *
+ * */
+
+#ifndef OTF_MASTERCONTROL_H
+#define OTF_MASTERCONTROL_H
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_File.h"
+#include "OTF_Filenames.h"
+#include "OTF_WBuffer.h"
+#include "OTF_RBuffer.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** entry for 1:n mapping */
+struct struct_OTF_MapEntry {
+
+	/**	Unique argument ids. (stream ids) */
+	uint32_t argument;
+
+	/**	Current number of entries in 'values'. */
+	uint32_t n;
+
+	/**	Current size of array 'values'. */
+	uint32_t s;
+
+	/**	List of size 's' containing 'n' sorted entries of unique value ids
+	(process ids). */
+	uint32_t* values;
+};
+/** entry for 1:n mapping \ingroup mc */
+typedef struct struct_OTF_MapEntry OTF_MapEntry;
+
+
+/** entry for 1:1 mapping */
+struct struct_OTF_Pair {
+
+	uint32_t argument;
+	uint32_t value;
+};
+/** entry for 1:1 mapping \ingroup mc */
+typedef struct struct_OTF_Pair OTF_Pair;
+
+
+/**	Data structure that collects the information about which stream contains
+	which parts of a multi-file trace. This is supposed to be an 1:1 copy of 
+	the information in the master control file. */
+struct struct_OTF_MasterControl {
+
+
+	/**	Current number of entries in 'map'. */
+	uint32_t n;
+
+	/**	Current size of array 'map'. */
+	uint32_t s;
+
+	/**	Mapping from stream ids (argument) to process ids (values).
+		1:n mapping since a stream can contain multiple processes.
+		This mapping is the authoritative source as listed in the master
+		control file. */
+	OTF_MapEntry* map;
+
+
+	/**	Current number of entries in 'rmap'. */
+	uint32_t rn;
+
+	/**	Current size of array 'rmap'. */
+	uint32_t rs;
+
+	/**	Reverse mapping to 'map'. this is an 1:1 mapping since every
+		process belongs to exactly one stream.
+		This recursive mapping is to be derived from the authoritative source
+		in 'map'. */
+	OTF_Pair* rmap;
+
+	/** file handle manager */
+	OTF_FileManager* manager;
+};
+/** master control object. This object contains all information of the master
+ * control file. \ingroup mc */
+typedef struct struct_OTF_MasterControl OTF_MasterControl;
+
+
+/**
+ * Creates an empty OTF_MasterControl object.
+ * The returned object must be freed by OTF_MasterControl_close().
+ *
+ * @param  manager   File handle manager.
+ *
+ * @return           newly created master control object
+ *
+ * \ingroup mc
+ */
+OTF_MasterControl* OTF_MasterControl_new( OTF_FileManager* manager );
+
+
+/**
+ * INTERFACE CHANGED!
+ * Read a master control file according to namestub, reset the _existing_
+ * OTF_MasterControl structure and fill it according to the file.
+ *
+ * @param mc    Pointer to an initialized OTF_Mastercontrol object. See also
+ *              OTF_MasterControl_new().
+ *
+ * @return      1 on success, 0 if an error occurs
+ *
+ * \ingroup mc
+ */
+int OTF_MasterControl_read(OTF_MasterControl* mc, const char* namestub );
+
+
+/**	Destructor, delete OTF_MasterControl object. DEPRECATED \ingroup mc*/
+void OTF_MasterControl_finish( OTF_MasterControl* mc );
+
+/**
+ * Deletes a OTF_MasterControl object.
+ *
+ * @param mc    Pointer to an initialized OTF_Mastercontrol object. See also
+ *              OTF_MasterControl_new().
+ *
+ * \ingroup mc
+ */
+void OTF_MasterControl_close( OTF_MasterControl* mc );
+
+/**
+ * Append the mapping argument -> value to the master control structure,
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param argument  Represents the stream identifier.
+ * @param value     Represents the process identifier.
+ *
+ * @return          1 on sucess, 0 if an error occurs (e.g. the new pair
+ *                  conflicts with the current mapping).
+ *
+ * \ingroup mc
+ */
+int OTF_MasterControl_append( OTF_MasterControl* mc,
+	uint32_t argument, uint32_t value );
+
+
+/**
+ * Append the mapping argument -> ( list of l values ) to the master control
+ * structure. This is equal to calling 'OTF_MasterControl_append()' with every
+ * value in list separately.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param argument  Represents the stream identifier.
+ * @param l         Number of elements in the value array.
+ * @param values    Array of process identifiers belonging to the stream.
+ *
+ * @return          1 on success, 0 if an error occurs (e.g. the new entries
+ *                  conflict with the current mapping).
+ *
+ *
+ *
+ * \ingroup mc
+ */
+int OTF_MasterControl_appendList( OTF_MasterControl* mc, uint32_t argument,
+	uint32_t l, uint32_t* values );
+
+
+/**
+ * Returns the argument to the given value. If no mapping was defined
+ * make up a new one.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param value     Represents the process identifier.
+ *
+ * @return          Argument to which the value belongs to.
+ *
+ * \ingroup mc
+ */
+uint32_t OTF_MasterControl_mapReverse( OTF_MasterControl* mc, uint32_t value );
+
+
+/**
+ * Writes a master control file with the current contents of the given
+ * object.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param namestub  File name prefix which.
+ *
+ * @return          1 on success, 0 if an error occurs.
+ * 
+ * \ingroup mc
+ */
+int OTF_MasterControl_write( OTF_MasterControl* mc, const char* namestub );
+
+
+/**
+ * Checks if the current mapping is consistent in itself.
+ *
+ * @param mc  Pointer to an initialized OTF_Mastercontrol object. See also
+ *            OTF_MasterControl_new().
+ *
+ * @return    1 on success, 0 if the mapping is not consistent in itself.
+ *
+ * \ingroup mc
+ */
+int OTF_MasterControl_check( OTF_MasterControl* mc );
+
+
+/**
+ * Prints the mapping to stderr.
+ *
+ * @param mc  Pointer to an initialized OTF_Mastercontrol object. See also
+ *            OTF_MasterControl_new().
+ *
+ * \ingroup mc
+ */
+void OTF_MasterControl_print( OTF_MasterControl* mc );
+
+
+/**
+ * Returns the entry for the given argument.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param argument  Represents the stream identifier.
+ *
+ * @return          The map entry belonging to the argument, or NULL if an error
+ *                  occurs.
+ *
+ * \ingroup mc
+ */
+OTF_MapEntry* OTF_MasterControl_getEntry( OTF_MasterControl* mc,
+	uint32_t argument );
+
+
+/**
+ * Returns the entry for the given index.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param index     Index of the entry to return.
+ *
+ * @return          The map entry belonging to the index, or NULL if the index
+ *                  exceeds the mapping.
+ *
+ * \ingroup mc
+ */
+OTF_MapEntry* OTF_MasterControl_getEntryByIndex( OTF_MasterControl* mc,
+	uint32_t index );
+
+
+/**
+ * Returns a pair of value and argument for the given index.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param index     Index of the pair in the reverse mapping.
+ *
+ * @return          Pair of value and argument belonging
+ *                  to the index, or NULL if the index exceeds the reverse
+ *                  mapping.
+ *
+ * \ingroup mc
+ */
+OTF_Pair* OTF_MasterControl_getREntryByIndex( OTF_MasterControl* mc,
+	uint32_t index );
+
+
+/**
+ * Returns the number of arguments in the current list.
+ *
+ * @param mc   Pointer to an initialized OTF_Mastercontrol object. See also
+ *             OTF_MasterControl_new().
+ * 
+ * @return     Number of entrys in the current list.
+ *             (equals the number of streams)
+ *
+ * \ingroup mc
+ */
+uint32_t OTF_MasterControl_getCount( OTF_MasterControl* mc );
+
+/**
+ * Returns the number of arguments in current reverse list.
+ *
+ * @param mc   Pointer to an initialized OTF_Mastercontrol object. See also
+ *             OTF_MasterControl_new().
+ * 
+ * @return     Number of entrys in the current reverse list.
+ *             (equals the number of processes)
+ *
+ * \ingroup mc
+ */
+uint32_t OTF_MasterControl_getrCount( OTF_MasterControl* mc );
+
+/**
+ * Returns the number of values for the given argument.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param argument  Represents the stream identifier.
+ *
+ * @return          Number of values for the given argument, or
+ *                  0 if the argument is unknown.
+ *
+ * \ingroup mc
+ */
+uint32_t OTF_MasterControl_getValueCount( OTF_MasterControl* mc,
+	uint32_t argument );
+
+
+/**
+ * Returns a pointer to the value array for 'argument'. Get size of list with
+ * 'OTF_MasterControl_getValueCount()'.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ * @param argument  Represents the stream identifier.
+ *
+ * @return          Pointer to the value array for 'argument', or NULL if an
+ *                  error occurs.
+ *
+ * \ingroup mc
+ */
+uint32_t* OTF_MasterControl_getValues( OTF_MasterControl* mc, 
+	uint32_t argument );
+
+
+/**
+ * Returns a previously unused argument. Of course, one cannot avoid
+ * collisions with arguments explicitly defined later on.
+ *
+ * @param mc        Pointer to an initialized OTF_Mastercontrol object. See also
+ *                  OTF_MasterControl_new().
+ *
+ * @return          Unused argument.
+ *
+ * \ingroup mc
+ */
+uint32_t OTF_MasterControl_getNewStreamId( OTF_MasterControl* mc );
+
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_MASTERCONTROL_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RBuffer.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RBuffer.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RBuffer.h	(revision 97)
@@ -0,0 +1,218 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_RBuffer.h
+ *
+ *  @brief Provides read access to trace buffers.
+ *
+ *  \ingroup internal
+ */
+
+
+#ifndef OTF_RBUFFER_H
+#define OTF_RBUFFER_H
+
+
+#include <stdlib.h>
+#include <stdio.h>
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_File.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct struct_OTF_RBuffer {
+
+
+	OTF_File* file;
+
+
+	/**	actual buffer */
+	char* buffer;
+
+	/**	Current read position in buffer.
+		'end <= pos' indicates an invalid state! */
+	uint32_t pos;
+
+	/**	Current end of data in buffer in case it is not full.
+		'end <= pos' indicates an invalid state! */
+	uint32_t end;
+	
+	/** Last '\n' in the buffer. */
+	uint32_t lastnewline;
+
+	/**	Current size of buffer. */
+	uint32_t size;
+
+	/**	If 'OTF_RBuffer_jump()' is called only 'jumpsize' bytes are
+		read into buffer. */
+	uint32_t jumpsize;
+
+	/**	Current time inside this stream, necessary for state machine,
+		(-1) means unknown. */
+	uint64_t time;
+
+	/**	Current process inside this stream, necessary for state machine,
+		(-1) means unknown. */
+	uint32_t process;
+
+	/** Total size of the file in bytes. This is used in
+		searchTime(). A value of (-1) means unknown.
+		Determined by internal function OTF_RBuffer_getFileProperties(). */
+	uint64_t filesize;
+
+	/**	The very first timestamp of that stream. This is used in
+		searchTime(). A value of (-1) means unknown.
+		Determined by internal function OTF_RBuffer_getFileProperties(). */
+	uint64_t firstTime;
+
+	/**	The very last timestamp of that stream. This is used in
+		searchTime(). A value of (-1) means unknown.
+		Determined by internal function OTF_RBuffer_getFileProperties(). */
+	uint64_t lastTime;
+	
+#ifdef HAVE_ZLIB
+	/** Default size of zbuffers managed by this buffer. */
+	uint32_t zbuffersize;
+#endif /* HAVE_ZLIB */
+};
+typedef struct struct_OTF_RBuffer OTF_RBuffer;
+
+
+/**	constructor - internal use only */
+OTF_RBuffer* OTF_RBuffer_open( const char* filename, OTF_FileManager* manager );
+
+/**	destructor - internal use only */
+int OTF_RBuffer_close( OTF_RBuffer* rbuffer );
+
+/**	Set buffer size. Cannot shrink buffer but only extend. */
+int OTF_RBuffer_setSize( OTF_RBuffer* rbuffer, size_t size );
+
+/**	Set zbuffer size. */
+void OTF_RBuffer_setZBufferSize( OTF_RBuffer* rbuffer, uint32_t size );
+
+/**	Set 'jumpsize'. Return 0 if 'size' is greater than the
+	buffer size. */
+int OTF_RBuffer_setJumpSize( OTF_RBuffer* rbuffer, size_t size );
+
+/**	Make the next record availabe from the buffer. Return the pointer to the
+	record string which is terminated by '\n' not '\0' !
+	This funktion must be called before any record access. It ensures the 
+	record is available completely in the buffer. Furthermore, time and process
+	information is kept track of.
+	It is recommended to use the 'OTF_RBuffer_readXXX()' functions below to 
+	read record components instead of parsing manually. In any case, after 
+	reading	'OTF_RBuffer_readNewline()' needs to be called which proceeds to 
+	the next record begin no matter if there are still characters from the 
+	current record present or not. */
+char* OTF_RBuffer_getRecord( OTF_RBuffer* rbuffer );
+
+
+/**	Ask the buffer to guarantee at least one complete record at the current
+	read position inside the buffer. This means one line, e.g. '\n' character.
+	If no complete record is found the buffer has to be advanced by reading new
+	contents from file. Return 1 on success, 0 means the file is exceeded. */
+int OTF_RBuffer_guaranteeRecord( OTF_RBuffer* rbuffer );
+
+
+/**	Print the record at the current buffer position, i.e. until the next
+	newline character. This is for debugging purposes only and won't modify the
+	buffer in any way. */
+char *OTF_RBuffer_printRecord( OTF_RBuffer* rbuffer );
+
+
+/**	Jump to the given file position and restore buffer and references as if
+	the buffer had reached the position by advancing through the file linearly.
+	In particular, find the next record start, then find next timestamp and
+	process specification in order to set 'time' and 'process' to true values.
+	Return error code 1 on success. Otherwise the file is not that large or
+	there are no appropriate time and process specifications on the tail of
+	the file. Then the buffer contents is undefined */
+int OTF_RBuffer_jump( OTF_RBuffer* rbuffer, uint64_t filepos );
+
+/**	Read an 64bit unsigned integer in hex format from buffer and return it. */
+uint64_t OTF_RBuffer_readUint64( OTF_RBuffer* rbuffer );
+
+/**	Read an unsigned integer in hex format from buffer and return it. */
+uint32_t OTF_RBuffer_readUint32( OTF_RBuffer* rbuffer );
+
+/**	Read a string from buffer and return it. */
+const char* OTF_RBuffer_readString( OTF_RBuffer* rbuffer );
+
+/**	Read a array from buffer and return the number of elements. 
+	malloc memory for *array internally, needs to be freed by caller */
+uint32_t OTF_RBuffer_readArray( OTF_RBuffer* rbuffer, uint32_t** array );
+
+/**	Test if the next character equals the given one (leading spaces are
+	ignored). If the right character is found return 1, and advance by 1 step.
+	If the character was not found, keep the buffer position such that the test
+	can be repeated with another character. */
+int OTF_RBuffer_testChar( OTF_RBuffer* rbuffer, char c );
+
+/**	Test if the next string equals the given one (leading spaces are
+	ignored). The next character must not be an uppercase letter as used in 
+	keywords. If the right string is found return 1, and advance the buffer
+	position. If the string was not found, keep the buffer position such 
+	that the test can be repeated with another string. */
+int OTF_RBuffer_testKeyword( OTF_RBuffer* rbuffer, const char* string );
+
+/**	Test if the next string equals the given one (leading spaces are
+	ignored). This version is similar to the above function but does not test 
+	the following character, i.e. it can be used to test for prefixes.
+	If the right string is found return 1, and advance the buffer
+	position. If the string was not found, keep the buffer position such 
+	that the test can be repeated with another string. */
+int OTF_RBuffer_testPrefix( OTF_RBuffer* rbuffer, const char* string );
+
+/**	Read a newline such that the buffer pos is at the next record beginning.
+	Skip all characters found, assume they are to be ignored.
+	Return 1 on success, 0 on error. */
+int OTF_RBuffer_readNewline( OTF_RBuffer* rbuffer );
+
+/**	Advance the buffer position while there are spaces. */
+void OTF_RBuffer_skipSpaces( OTF_RBuffer* rbuffer );
+
+/**	Advance the buffer position while there are capital letters. */
+void OTF_RBuffer_skipKeyword( OTF_RBuffer* rbuffer );
+
+/**	Return the current time of the buffer. */
+uint64_t OTF_RBuffer_getCurrentTime( OTF_RBuffer* rbuffer );
+
+/**	Set the current time of the buffer to the given one. */
+void OTF_RBuffer_setCurrentTime( OTF_RBuffer* rbuffer, uint64_t time );
+
+/**	Return the current process of the buffer. */
+uint32_t OTF_RBuffer_getCurrentProcess( OTF_RBuffer* rbuffer );
+
+/**	Set the current process of the buffer to the given one. */
+void OTF_RBuffer_setCurrentProcess( OTF_RBuffer* rbuffer, uint32_t process );
+
+/**	Search the buffer for the given time and set the buffer position to
+	the next record after that time. Return 1 on success, 0 on error. */
+int OTF_RBuffer_searchTime( OTF_RBuffer* rbuffer, uint64_t time );
+
+/**	Determine buffers filesize, firstTime and lastTime if not already set.
+	Return 1 on success, 0 on error. */
+int OTF_RBuffer_getFileProperties( OTF_RBuffer* rbuffer );
+
+/** Returns the filesize of the file attached to this buffer */
+uint64_t OTF_RBuffer_getFileSize( OTF_RBuffer* rbuffer );
+
+/** Returns the fileposition of the file attached to this buffer */
+uint64_t OTF_RBuffer_getFilePos( OTF_RBuffer* rbuffer );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_RBUFFER_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RStream.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RStream.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_RStream.h	(revision 97)
@@ -0,0 +1,621 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/* NOTE
+the OTF_RStream interface is not able to perform jumps to random timestamps,
+and cannot quit at a certain maximum time stamp.
+Maybe in future versions we add this. 
+It is not in, because the OTF_Reader interface uses the buffer-methodes directly
+to set the timestamps, so saving it in the stream too will be worthless in this
+case. */
+
+/** 
+ *  @file OTF_RStream.h
+ *
+ *  @brief Provides read access to trace streams, which consist of multiple
+ *  buffers.
+ *
+ *  \ingroup rstream
+ */
+
+/** \defgroup rstream Stream Reader Interface
+ *
+ * rstream provides an interface for dealing with a single stream of a trace.
+ * A stream consists of up to four different buffers (event buffer,
+ * definition buffer, snapshots buffer, statistics buffer).
+ *
+ * rstream is structured similarly to the reader, but it is not
+ * able to perform jumps to random timestamps, and cannot quit at a certain
+ * maximum time stamp.
+ *
+ * \section rstream_example A simple Example
+ *
+ * Common includes
+ * \code
+ * #include <stdio.h>
+ * #include <assert.h>
+ * #include "otf.h"
+ * \endcode
+ *
+ *
+ * Define the Handler(s).
+ * We just want to process the def process event and print out all appearing processes.
+ * \code
+ * int handleDefProcess (void *userData, uint32_t stream, uint32_t process, const char *name, uint32_t parent) {
+ *
+ *     printf( "process %u is named \"%s\"\n", process, name );
+ *
+ *     return OTF_RETURN_OK;
+ * }
+ * \endcode
+ *
+ * \code
+ * int main( int argc, char** argv ) {
+ * \endcode
+ *
+ *     Declare a file manager, a reader, and a handler array
+ *     \code
+ *     OTF_RStream* rstream;
+ *     OTF_FileManager* manager;
+ *     OTF_HandlerArray* handlers;
+ *     \endcode
+ *
+ *     Initialize the file manager. Do not open more than 100 files.
+ *     \code
+ *     manager= OTF_FileManager_open( 100 );
+ *     assert( manager );
+ *     \endcode
+ *
+ *     Initialize the handler array.
+ *     \code
+ *     handlers = OTF_HandlerArray_open();
+ *     assert( handlers );
+ *     \endcode
+ * 
+ *     Initialize the rstream object.
+ *     \code
+ 
+ *     rstream = OTF_RStream_open( "mytrace", 0, manager );
+ *     assert( rstream );
+ *     \endcode
+ *
+ *     Register your callback functions to the handler array.
+ *     \code	
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleDefProcess, OTF_DEFPROCESS_RECORD );
+ *     \endcode
+ *
+ *
+ *     Do the actual reading.
+ *     \code
+ *     OTF_RStream_readDefinitions( rstream, handlers );
+ *     \endcode
+ *
+ *
+ *     Clean everything up before exiting the program.
+ *     \code
+ *     OTF_RStream_close( rstream );
+ *     OTF_HandlerArray_close( handlers );
+ *     OTF_FileManager_close( manager );
+ *
+ *     return 0;
+ * }
+ * \endcode
+ *
+ * Compile and link this using $ gcc -o test test.c `otfconfig --libs`.
+ *
+ */
+
+
+#ifndef OTF_RSTREAM_H
+#define OTF_RSTREAM_H
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_FileManager.h"
+#include "OTF_RBuffer.h"
+#include "OTF_Filenames.h"
+#include "OTF_HandlerArray.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct struct_OTF_RStream {
+
+
+	/**	name stub: all files will begin with this name */
+	char* namestub;
+
+	/**	Unique id for the current stream */
+	uint32_t id;
+
+	/**	Definitions buffer. Definitions buffer carries definition
+		records */
+	OTF_RBuffer* defBuffer;
+
+	/**	Event buffer. The event buffer carries records for actual
+		events, i.e. records with a time stamp */
+	OTF_RBuffer* eventBuffer;
+
+	/**	Snaps (snapshots) buffer. The snapshots buffer carries
+		snapshots of the whole state at a point in time - as oppossed to
+		events which only show changes in the state. This can be used to
+		start from such a snapshot instead of from the very begining. */
+	OTF_RBuffer* snapsBuffer;
+
+	/**	Statistics buffer. Statistics buffer carries statistical
+		information about a certain time interval resp. data at
+		points of time that allow to derive statistics without
+		reading through all events of that interval. */
+	OTF_RBuffer* statsBuffer;
+
+	/** Default size of buffers managed by this RStream. */
+	uint32_t buffersizes;
+	
+#ifdef HAVE_ZLIB
+	/** Default size of zbuffers managed by this RStream. */
+	uint32_t zbuffersizes;
+#endif /* HAVE_ZLIB */
+	
+	/** file handle manager */
+	OTF_FileManager* manager;
+	
+	/** maximum number of records delivered by a single call to OTF_Reader_readXYZ()
+	defaults to OTF_READ_MAXRECORDS == \infty */
+	uint64_t recordLimit;
+};
+/** rstream object \ingroup rstream */
+typedef struct struct_OTF_RStream OTF_RStream;
+
+
+/**     
+ * Create a new OTF_RStream instance.
+ *
+ * @param  nameStub     File name prefix which is going to be used by 
+ *                      all sub-files which belong to the reader stream.
+ * @param  id           Abitrary but unique identifier of the reader stream.
+ *                      Cannot be '0'.
+ * @param  manager      File handle manager. 
+ *
+ * @return              Initialized OTF_RStream instance or 0 if an error
+ *                      occurred.
+ *
+ * \ingroup rstream
+ */
+OTF_RStream* OTF_RStream_open( const char* nameStub, uint32_t id, OTF_FileManager* manager );
+
+
+/** 
+ * Close an OTF_RStream instance and all its related files.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         1 if instance was closed successfully and 0 otherwise.
+ *
+ * \ingroup rstream
+ */
+int OTF_RStream_close( OTF_RStream* rstream );
+
+
+/** 
+ * Returns the definition buffer of the according reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Initialized OTF_RBuffer instance or 0 if an error occured.
+ *
+ * \ingroup rstream
+ */
+OTF_RBuffer* OTF_RStream_getDefBuffer( OTF_RStream* rstream );
+
+
+/**
+ * Closes the stream defefinition buffer.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ *
+ * @return         1 on success, 0 if an error occurs
+ *
+ * \ingroup rstream
+ */
+int OTF_RStream_closeDefBuffer( OTF_RStream* rstream );
+
+
+/** 
+ * Returns the event buffer of the according reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Initialized OTF_RBuffer instance or 0 if an error occured.
+ *
+ * \ingroup rstream
+ */
+OTF_RBuffer* OTF_RStream_getEventBuffer( OTF_RStream* rstream );
+
+
+/**
+ * Closes the stream event buffer.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ *
+ * @return         1 on success, 0 if an error occurs
+ *
+ * \ingroup rstream
+ */
+int OTF_RStream_closeEventBuffer( OTF_RStream* rstream );
+
+
+/** 
+ * Returns the snapshots buffer of the according reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Initialized OTF_RBuffer instance or 0 if an error occured.
+ *
+ * \ingroup rstream
+ */
+OTF_RBuffer* OTF_RStream_getSnapsBuffer( OTF_RStream* rstream );
+
+
+/**
+ * Closes the stream snapshots buffer.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ *
+ * @return         1 on success, 0 if an error occurs
+ *
+ * \ingroup rstream
+ */
+int OTF_RStream_closeSnapsBuffer( OTF_RStream* rstream );
+
+
+/** 
+ * Returns the statistics buffer of the according reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Initialized OTF_RBuffer instance or 0 if an error occured.
+ *
+ * \ingroup rstream
+ */
+OTF_RBuffer* OTF_RStream_getStatsBuffer( OTF_RStream* rstream );
+
+/**
+ * Closes the stream statistics buffer.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ *
+ * @return         1 on success, 0 if an error occurs
+ *
+ * \ingroup rstream
+ */
+int OTF_RStream_closeStatsBuffer( OTF_RStream* rstream );
+
+
+/** 
+ * Set the default buffer size for all buffers managed by this reader stream. 
+ * This is only effective for future buffers and will not change already 
+ * allocated buffers. Those can be changed with the buffers directly.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @param size     Intended buffer size.
+ *
+ * \ingroup rstream
+ */
+void OTF_RStream_setBufferSizes( OTF_RStream* rstream, uint32_t size );
+
+
+/** 
+ * Get the default buffer size for all buffers managed by this reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Default buffer size for all buffers managed by this reader
+ *                 stream.
+ *
+ * \ingroup rstream
+ */
+uint32_t OTF_RStream_getBufferSizes( OTF_RStream* rstream );
+
+
+/** 
+ * Set the default zbuffer size for all files managed by this reader stream.
+ * This is only effective for future files and will not change already
+ * allocated buffers. Those can be changed with the files directly.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @param size     Intended buffer size.
+ *
+ * \ingroup rstream
+ */
+void OTF_RStream_setZBufferSizes( OTF_RStream* rstream, uint32_t size );
+
+
+/** 
+ * Get the default zbuffer size for all files managed by this reader stream.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * 
+ * @return         Default buffer size for all buffers managed by this reader
+ *                 stream.
+ *
+ * \ingroup rstream
+ */
+uint32_t OTF_RStream_getZBufferSizes( OTF_RStream* rstream );
+
+
+/**
+ * Sets the maximum number of records delivered by a single call to
+ * OTF_RStream_readXYZ(). Defaults to OTF_READ_MAXRECORDS == \infty.
+ * 'OTF_Reader_readXYZ()' returns with the number of records processed.
+ * Successive calls to 'OTF_Reader_readXYZ()' will deliver the remaining
+ * records.
+ *
+ * This function will NOT destroy a pending read operation, i.e. a read
+ * operation currently interrupted CAN be continued!
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ * @param limit    new record limit. has to be smaller than or equal to
+ *                 OTF_READ_MAXRECORDS
+ *
+ * \ingroup rstream
+ */
+void OTF_RStream_setRecordLimit( OTF_RStream* rstream, uint64_t limit );
+
+
+/**
+ * Returns the current record limit.
+ *
+ * @param rstream  Pointer to an initialized OTF_RStream object. See 
+ *                 also OTF_RStream_open().
+ *
+ * @return         Current record limit.
+ *
+ * \ingroup rstream
+ */
+uint64_t OTF_RStream_getRecordLimit( OTF_RStream* rstream );
+
+
+
+/**
+ * Reads all definitions from the stream.
+ *
+ * @param rstream   Pointer to an initialized OTF_RStream object. See 
+ *                  also OTF_RStream_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          Number of records read or OTF_READ_MAXRECORDS
+ *
+ * \ingroup rstream
+ */
+uint64_t OTF_RStream_readDefinitions( OTF_RStream* rstream, 
+	OTF_HandlerArray* handlers );
+
+
+/**
+ * Reads all events from the stream and calls the appropriated handler sorted
+ * by time.
+ *
+ * @param rstream   Pointer to an initialized OTF_RStream object. See 
+ *                  also OTF_RStream_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          Number of records read or OTF_READ_MAXRECORDS
+ *
+ * \ingroup rstream
+ */
+uint64_t OTF_RStream_readEvents( OTF_RStream* rstream, OTF_HandlerArray* handlers );
+
+
+/**
+ * Reads all snapshots from the stream.
+ *
+ * @param rstream   Pointer to an initialized OTF_RStream object. See 
+ *                  also OTF_RStream_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          Number of records read or OTF_READ_MAXRECORDS
+ *
+ * \ingroup rstream
+ */
+uint64_t OTF_RStream_readSnapshots( OTF_RStream* rstream, OTF_HandlerArray* handlers );
+
+
+/**
+ * Reads all statistics from the stream.
+ *
+ * @param rstream   Pointer to an initialized OTF_RStream object. See 
+ *                  also OTF_RStream_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          Number of records read or OTF_READ_MAXRECORDS
+ *
+ * \ingroup rstream
+ */
+uint64_t OTF_RStream_readStatistics( OTF_RStream* rstream, OTF_HandlerArray* handlers );
+
+
+
+/** depricated. @see OTF_RStream_eventTimeProgress() \ingroup rstream */
+uint8_t OTF_RStream_eventProgress( OTF_RStream* rstream, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+	
+/** depricated. @see OTF_RStream_snapshotTimeProgress() \ingroup rstream */
+uint8_t OTF_RStream_snapshotProgress( OTF_RStream* rstream,
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+		
+/** depricated. @see OTF_RStream_statisticTimeProgress() \ingroup rstream */
+uint8_t OTF_RStream_statisticProgress( OTF_RStream* rstream,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+	
+	
+/**
+ * Delivers a progress report for reading events. Progress is given in terms
+ * of time stamps. A percentage can be computed as 
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! This would not
+ * be possible when referring to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readEvents()'.In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_eventTimeProgress( OTF_RStream* rstream, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading snapshots. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! this would
+ * not be possible when refering to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readSnapshots()'. In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_snapshotTimeProgress( OTF_RStream* rstream,
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading statistics. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! this would
+ * not be possible when refering to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readStatistics()'. In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_statisticTimeProgress( OTF_RStream* rstream,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading events. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_eventBytesProgress( OTF_RStream* rstream, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading snapshots. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_snapshotBytesProgress( OTF_RStream* rstream,
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+/**
+ * Delivers a progress report for reading statistics. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param rstream    Pointer to an initialized OTF_RStream object. See 
+ *                   also OTF_RStream_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup rstream
+ */
+uint8_t OTF_RStream_statisticBytesProgress( OTF_RStream* rstream,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_RSTREAM_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Reader.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Reader.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Reader.h	(revision 97)
@@ -0,0 +1,805 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_Reader.h
+ *
+ *  @brief Transparently reads OTF traces which consist of multiple streams.
+ *
+ *  This interface should be used whenever a trace file is to be read as a
+ *  whole.
+ *
+ *  \ingroup reader
+ */
+
+
+#ifndef OTF_READER_H
+#define OTF_READER_H
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_MasterControl.h"
+#include "OTF_FileManager.h"
+#include "OTF_RStream.h"
+#include "OTF_HandlerArray.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** \defgroup reader Reader Interface
+ *
+ * The reader provides high level read access to traces
+ * disregarding the presence of streams.
+ *
+ * \section reader_example1 A simple Example
+ *
+ * \code
+ * #include <stdio.h>
+ * #include <assert.h>
+ * #include "otf.h"
+ * \endcode
+ *
+ * Define handlers/callbacls for the records you want to read.
+ * \code
+ * int handleEnter (void *userData, uint64_t time, uint32_t function, uint32_t process, uint32_t source) {
+ *
+ *     printf("we just entered function %u\n", function); 
+ *
+ *     return OTF_RETURN_OK;
+ * }
+ *
+ * int handleLeave (void *userData, uint64_t time, uint32_t function, uint32_t process, uint32_t source) {
+ *
+ *     printf("byebye\n");
+ *
+ *     return OTF_RETURN_OK;
+ * }
+ * \endcode
+ *
+ * \code
+ * int main( int argc, char** argv ) {
+ * \endcode
+ *
+ *     Declare a file manager, a reader, and a handler array.
+ *     \code
+ *     OTF_FileManager* manager;
+ *     OTF_Reader* reader;
+ *     OTF_HandlerArray* handlers;
+ *     \endcode
+ *
+ *     Initialize the file manager. Do not open more than 100 files.
+ *     \code
+ *     manager= OTF_FileManager_open( 100 );
+ *     assert( manager );
+ *     \endcode
+ *
+ *     Initialize the handler array.
+ *     \code
+ *     handlers = OTF_HandlerArray_open();
+ *     assert( handlers );
+ *     \endcode
+ * 
+ *     Initialize the reader.
+ *     \code
+ *     reader = OTF_Reader_open( "mytrace", manager );
+ *     assert( reader );
+ *     \endcode
+ *
+ *     Register your callback functions to the handler array.
+ *     \code	
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleEnter, OTF_ENTER_RECORD );
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleLeave, OTF_LEAVE_RECORD );
+ *     \endcode
+ *
+ *
+ *     Do the actual reading.
+ *     \code
+ *     OTF_Reader_readEvents( reader, handlers );
+ *     \endcode
+ *
+ *
+ *     Clean everything up before exiting the program.
+ *     \code
+ *     OTF_Reader_close( reader );
+ *     OTF_HandlerArray_close( handlers );
+ *     OTF_FileManager_close( manager );
+ *
+ *     return 0;
+ * }
+ * \endcode
+ *
+ * Compile and link this using $ gcc -o test test.c `otfconfig --libs`.
+ *
+ *
+ * \section reader_example2 A second, more complex Example
+ *
+ * Same as before
+ * \code
+ * #include <stdio.h>
+ * #include <assert.h>
+ * #include "otf.h"
+ * \endcode
+ *
+ * Create a structure, which holds information needed in every handler.
+ * We will register this structure to the handlers, so that the userData pointer
+ * in every handler will point to it.
+ * In this example we just want to count the occurences.
+ * \code
+ * typedef struct {
+ *     uint64_t count;
+ * } HandlerArgument;
+ * \endcode
+ *
+ * Define four handlers.
+ * In every handler we will increase HandlerArgument::count.
+ * \code
+ * int handleDefProcess (void *userData, uint32_t stream, uint32_t process, const char *name, uint32_t parent) {
+ *     ((HandlerArgument*)userData)->count++;
+ *     return OTF_RETURN_OK;
+ * }
+ * int handleDefFunction (void *userData, uint32_t stream, uint32_t func, const char *name, uint32_t funcGroup, uint32_t source) {
+ *     ((HandlerArgument*)userData)->count++;
+ *     return OTF_RETURN_OK;
+ * }
+ * int handleEnter (void *userData, uint64_t time, uint32_t function, uint32_t process, uint32_t source) {
+ *     ((HandlerArgument*)userData)->count++;
+ *     return OTF_RETURN_OK;
+ * }
+ * int handleLeave (void *userData, uint64_t time, uint32_t function, uint32_t process, uint32_t source) {
+ *     ((HandlerArgument*)userData)->count++;
+ *     return OTF_RETURN_OK;
+ * }
+ * \endcode
+ *
+ *
+ * Same as before
+ * \code
+ * int main( int argc, char** argv ) {
+ *
+ *     OTF_FileManager* manager;
+ *     OTF_Reader* reader;
+ *     OTF_HandlerArray* handlers;
+ * \endcode
+ *
+ *     We need some additional variables for the read progress
+ *     \code
+ *     uint64_t minbytes;
+ *     uint64_t curbytes;
+ *     uint64_t maxbytes;
+ *     \endcode
+ *
+ *     \code
+ *     uint64_t ret;
+ *     HandlerArgument ha;
+ *     ha.count = 0;
+ *
+ *     manager= OTF_FileManager_open( 100 );
+ *     assert( manager );
+ *
+ *     handlers = OTF_HandlerArray_open();
+ *     assert( handlers );
+ *
+ *     reader = OTF_Reader_open( "mytrace", manager );
+ *     assert( reader );
+ *     \endcode
+ *
+ *     Register handlers for define process records,
+ *     define function records, enter records and leave records
+ *     
+ *     \code
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleDefProcess, OTF_DEFPROCESS_RECORD );
+ *     \endcode
+ *     Register the first handler argument ha to the handler where it should be passed into.
+ *     \code
+ *     OTF_HandlerArray_setFirstHandlerArg( handlers, &ha, OTF_DEFPROCESS_RECORD );
+ *     \endcode
+ *
+ *     \code
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleDefFunction, OTF_DEFFUNCTION_RECORD );
+ *     OTF_HandlerArray_setFirstHandlerArg( handlers, &ha, OTF_DEFFUNCTION_RECORD );
+ *
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleEnter, OTF_ENTER_RECORD );
+ *     OTF_HandlerArray_setFirstHandlerArg( handlers, &ha, OTF_ENTER_RECORD );
+ *
+ *     OTF_HandlerArray_setHandler( handlers, (OTF_FunctionPointer*) handleLeave, OTF_LEAVE_RECORD );
+ *     OTF_HandlerArray_setFirstHandlerArg( handlers, &ha, OTF_LEAVE_RECORD );
+ *     \endcode
+ *
+ *     Read definitions ( .def files).
+ *     Inside this function the defProcess and defFunction handler will be called.
+ *     \code
+ *     OTF_Reader_readDefinitions( reader, handlers );
+ *     \endcode
+ *
+ *     Set the record limit to zero and read the events once.
+ *     This initializes internal datastructures needed for getting the reading progress.
+ *     \code
+ *     OTF_Reader_setRecordLimit( reader, 0 );
+ *     OTF_Reader_readEvents( reader, handlers );
+ *     \endcode
+ *     
+ *     To leave OTF_Reader_readEvents() once in a while, in order to update the progress,
+ *     set the record limit to an appropriate number. 100000 in this case.
+ * 
+ *     \code
+ *     OTF_Reader_setRecordLimit( reader, 100000 );
+ *     \endcode
+ * 
+ *     Read the trace until no records are left.
+ *     \code
+ *     while ( 0 != ( ret= OTF_Reader_readEvents( reader, handlers ) ) ) {
+ *     \endcode
+ * 
+ *     If an error occurs, leave the program.
+ *     \code
+ *         if( OTF_READ_ERROR == ret ) {
+ *             fprintf( stderr, "Error while reading events. Aborting\n" );
+ *
+ *             OTF_Reader_close( reader );
+ *             OTF_HandlerArray_close( handlers );
+ *             OTF_FileManager_close( manager );
+ *
+ *             exit(1);
+ *         }
+ *
+ *     \endcode
+ *     Update the progress.
+ *     \code
+ *         OTF_Reader_eventBytesProgress( reader, &minbytes, &curbytes, &maxbytes );
+ *         printf( "%llub / %llub\n", (long long unsigned)(curbytes - minbytes), (long long unsigned)(maxbytes-minbytes) );
+ *     \endcode
+ *
+ *     \code
+ *     }
+ *     \endcode
+ *     Print out the gathered count of occurences of the four record types.
+ *     \code
+ *     printf( "count: %llu\n", (long long unsigned) ha.count );
+ *     \endcode
+ *
+ *     Finish everything
+ *     \code
+ *     OTF_Reader_close( reader );
+ *     OTF_HandlerArray_close( handlers );
+ *     OTF_FileManager_close( manager );
+ *
+ *     return 0;
+ * }
+ * \endcode
+ * Compile and link this using $ gcc -o test test.c `otfconfig --libs`.
+ * 
+ * When executing this test the output will be something like this:
+ * \verbatim
+ *   4194304b / 73530754b
+ *   [..]
+ *   73530754b / 73530754b
+ *   count: 4582694 \endverbatim
+ *
+ */
+
+/** reader object \ingroup reader */
+typedef struct struct_OTF_Reader OTF_Reader;
+
+
+/**
+ * Open a MasterControl file and return a OTF_Reader.
+ *
+ * @param  namestub     File name prefix which is going to be used by 
+ *                      all sub-files which belong to the trace.
+ * @param  fileManager  File handle manager. 
+ *
+ * @return              Initialized OTF_Reader instance or 0 if a failure
+ *                      occurred.
+ *
+ * \ingroup reader
+ */
+OTF_Reader* OTF_Reader_open( const char* namestub, OTF_FileManager* manager );
+
+/** 
+ * Set the default buffer size for all buffers managed by this Reader. 
+ * This is only effective for future buffers and will not change already 
+ * allocated buffers. Those can be changed with the buffers directly.
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ * @param size    Intended buffer size.
+ *
+ * @return        1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+int OTF_Reader_setBufferSizes( OTF_Reader* reader, uint32_t size );
+
+/** 
+ * Get the default buffer size.
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ * 
+ * @return        Default buffer size.
+ *
+ * \ingroup reader
+ */
+uint32_t OTF_Reader_getBufferSizes( OTF_Reader* reader );
+
+/**
+ * Set the default zbuffer size for all buffers managed by this Reader.
+ * This is only effective for future files and will not change already
+ * allocated zbuffers. Those can be changed with the files directly.
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ * 
+ * @param size    Intended zbuffer size.
+ *
+ * \ingroup reader
+ */
+void OTF_Reader_setZBufferSizes( OTF_Reader* reader, uint32_t size );
+
+/** 
+ * Get the default zbuffer size.
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ * 
+ * @return  zbuffer size.
+ *
+ * \ingroup reader
+ */
+uint32_t OTF_Reader_getZBufferSizes( OTF_Reader* reader );
+
+/**
+ * Get a pointer to the mastercontrol of the reader
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ *
+ * @return        Pointer to the mastercontrol.
+ *
+ * \ingroup reader
+ */
+OTF_MasterControl* OTF_Reader_getMasterControl( OTF_Reader* reader );
+
+/** 
+ * Close an OTF_Reader instance and all its related files.
+ *
+ * @param reader  Pointer to an initialized OTF_Reader object. See 
+ *                also OTF_Reader_open().
+ * 
+ * @return        1 if instance was closed successfully and 0 otherwise.       
+ *
+ * \ingroup reader
+ */
+int OTF_Reader_close( OTF_Reader* reader );
+
+/**
+ * This function reads all definitions from trace.
+ *
+ * @param reader    Pointer to an initialized OTF_Reader object. See 
+ *                  also OTF_Reader_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          number of records successfully read or OTF_READ_ERROR
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readDefinitions( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all events from trace and calls the appropriate
+ * handler sorted by time
+ *
+ * @param reader    Pointer to an initialized OTF_Reader object. See 
+ *                  also OTF_Reader_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          number of records successfully read or OTF_READ_ERROR
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readEvents( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all events from trace and calls the appropriate handler
+ * NOT sorted by time.
+ * It calls every handler in ONE stream sorted by time.
+ * And walks through the streams one by one.
+ * ( So the handlers of one process will be called, sorted by time, too )
+ *
+ * This function is faster than OTF_Reader_readEvents(), especially for
+ * a bigger number of streams
+ *
+ * @see OTF_Reader_readEvents()
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readEventsUnsorted( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all snapshots from trace
+ *
+ * @param reader    Pointer to an initialized OTF_Reader object. See 
+ *                  also OTF_Reader_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          number of records successfully read or OTF_READ_ERROR
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readSnapshots( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all snapshots from trace and calls the appropriate handler
+ * NOT sorted by time.
+ * It calls every handler in ONE stream sorted by time.
+ * And it walks through the streams one by one.
+ * ( So the handlers of one process will be called, sorted by time, too )
+ *
+ * This function is faster than OTF_Reader_readSnapshots(), especially for
+ * a bigger number of streams
+ *
+ * @see OTF_Reader_readSnapshots()
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readSnapshotsUnsorted( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all statistic records from trace
+ *
+ * @param reader    Pointer to an initialized OTF_Reader object. See 
+ *                  also OTF_Reader_open().
+ * @param handlers  Pointer to the handler array.
+ *
+ * @return          number of records successfully read or OTF_READ_ERROR
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readStatistics( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * This function reads all statistics from trace and calls the appropriate handler
+ * NOT sorted by time.
+ * It calls every handler in ONE stream sorted by time.
+ * And it walks through the streams one by one.
+ * ( So the handlers of one process will be called, sorted by time, too )
+ *
+ * This function is faster than OTF_Reader_readStatistics(), especially for
+ * a bigger number of streams
+ *
+ * @see OTF_Reader_readStatistics()
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_readStatisticsUnsorted( OTF_Reader* reader, OTF_HandlerArray* handlers );
+
+/**
+ * Searchs a reader stream and returns it.
+ * If the stream does not exist it will be created.
+ *
+ * @param reader    Pointer to an initialized OTF_Reader object. See 
+ *                  also OTF_Reader_open().
+ * @param id        Identifier of the stream searched.
+ *
+ * @return          Initialised OTF_RStream object.
+ * 
+ * \ingroup reader
+ */
+OTF_RStream* OTF_Reader_getStream( OTF_Reader* reader, uint32_t id );
+
+/** disable given process. deprecated, use 'OTF_Reader_setProcessStatus()' instead. 
+
+This funktion will destroy a pending read operation, i.e. a read operation 
+currently interrupted cannot be continued! 
+\ingroup reader */
+int OTF_Reader_disableProcess( OTF_Reader* reader, uint32_t processId );
+
+/** enable given process. deprecated, use 'OTF_Reader_setProcessStatus()' instead. 
+
+This funktion will destroy a pending read operation, i.e. a read operation 
+currently interrupted cannot be continued! 
+\ingroup reader */
+int OTF_Reader_enableProcess( OTF_Reader* reader, uint32_t processId );
+
+
+/**
+ * Returns the current process status
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param processId  Identifier of the process to get the status from
+ *
+ * @return           Current process status. '1' for enabled, '0' for disabled
+ *                   or unknown.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_getProcessStatus( OTF_Reader* reader, uint32_t processId );
+
+
+/**
+ * Sets the current status of the process. This function will destroy a pending
+ * read operation, i.e. a read operation currently interrupted cannot be
+ * continued!
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param processId  Identifier of the process.
+ * @param status     new status of the process. '1' for enabled, '0'
+ *                   for disabled or unknown.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+int OTF_Reader_setProcessStatus( OTF_Reader* reader, uint32_t processId, 
+	uint8_t status );
+
+/**
+ * Sets the status for all processes with a single call. This function will
+ * destroy a pending read operation, i.e. a read operation currently
+ * interrupted cannot be continued! 
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param status     new status of the process. 
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+int OTF_Reader_setProcessStatusAll( OTF_Reader* reader, uint8_t status );
+
+
+/**
+ * Set the minimum time and the maximum time of the reader.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minTime    minimum to read records
+ * @param maxTime    maximum time to read records
+ *
+ * \ingroup reader
+ */
+void OTF_Reader_setTimeInterval( OTF_Reader* reader, uint64_t minTime,
+	uint64_t maxTime );
+
+
+/**
+ * Returns the begin of current time interval.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_getTimeIntervalMin( OTF_Reader* reader );
+
+
+/**
+ * Returns end of current time interval.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_getTimeIntervalMax( OTF_Reader* reader );
+
+
+/**
+ * Set the maximum number of records delivered by a single call to
+ * OTF_Reader_readXYZ(). Defaults to OTF_READ_MAXRECORDS == \infty.
+ * 'OTF_Reader_readXYZ()' returns with the number of records processed.
+ * Successive calls to 'OTF_Reader_readXYZ()' will deliver the remaining
+ * records. This funktion will NOT destroy a pending read operation, i.e. a
+ * read operation  currently interrupted CAN be continued!
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param limit      record limit. has to be smaller than or equal to
+ *                   OTF_READ_MAXRECORDS
+ *
+ * \ingroup reader
+ */
+void OTF_Reader_setRecordLimit( OTF_Reader* reader, uint64_t limit );
+
+
+/**
+ * Returns the current record limit.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ *
+ * @return           Current record limit.
+ *
+ * \ingroup reader
+ */
+uint64_t OTF_Reader_getRecordLimit( OTF_Reader* reader );
+
+/**
+ * Resets all filters for timelimit, process selection and record count limit.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ *
+ * \ingroup reader
+ */
+void OTF_Reader_reset( OTF_Reader* reader );
+
+/**
+ * Closes all streams that are open in the reader.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+int OTF_Reader_closeAllStreams( OTF_Reader* reader );
+
+
+/** depricated. @see OTF_Reader_eventTimeProgress() */
+uint8_t OTF_Reader_eventProgress( OTF_Reader* reader, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+	
+/** depricated. @see OTF_Reader_snapshotTimeProgress() */
+uint8_t OTF_Reader_snapshotProgress( OTF_Reader* reader, 
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+		
+/** depricated. @see OTF_Reader_statisticTimeProgress() */
+uint8_t OTF_Reader_statisticProgress( OTF_Reader* reader,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+	
+	
+/**
+ * Delivers a progress report for reading events. Progress is given in terms
+ * of time stamps. A percentage can be computed as 
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! This would not
+ * be possible when referring to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readEvents()'.In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_eventTimeProgress( OTF_Reader* reader, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading snapshots. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! this would
+ * not be possible when refering to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readSnapshots()'. In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_snapshotTimeProgress( OTF_Reader* reader, 
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading statistics. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes restricted time intervals into account! this would
+ * not be possible when refering to bytes read instead of time stamps.
+ * The progress report is only valid after one or several calls to
+ * 'readStatistics()'. In the latter case the return arguments
+ * 'minimum', 'current' and 'maximum' are undefined! If 'minimum' > 'maximum'
+ * the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium time.
+ * @param current    Return value for the current time.
+ * @param maximum    Return value for the maximum time.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_statisticTimeProgress( OTF_Reader* reader,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading events. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_eventBytesProgress( OTF_Reader* reader, uint64_t* minimum,
+	uint64_t* current, uint64_t* maximum );
+
+
+/**
+ * Delivers a progress report for reading snapshots. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_snapshotBytesProgress( OTF_Reader* reader, 
+		uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+/**
+ * Delivers a progress report for reading statistics. Progress is given in terms
+ * of time stamps. a percentage can be computed as
+ * ( current - minimum ) / ( maximum - minimum ). 
+ * This computation takes the read bytes of every stream into account. In the
+ * latter case the return arguments 'minimum', 'current' and 'maximum' are
+ * undefined! If 'minimum' > 'maximum' the values are invalid.
+ *
+ * @param reader     Pointer to an initialized OTF_Reader object. See 
+ *                   also OTF_Reader_open().
+ * @param minimum    Return value for the minium bytes read ( is 0 everytime ).
+ * @param current    Return value for the current bytes read.
+ * @param maximum    Return value for the filesize.
+ *
+ * @return           1 on success, 0 if an error occurs.
+ *
+ * \ingroup reader
+ */
+uint8_t OTF_Reader_statisticBytesProgress( OTF_Reader* reader,
+	uint64_t* minimum, uint64_t* current, uint64_t* maximum );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_READER_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WBuffer.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WBuffer.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WBuffer.h	(revision 97)
@@ -0,0 +1,134 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_WBuffer.h
+ *
+ *  @brief Provides write access to trace buffers.
+ *
+ *  \ingroup internal
+ */
+
+
+#ifndef OTF_WBUFFER_H
+#define OTF_WBUFFER_H
+
+
+#include <stdlib.h>
+#include <stdio.h>
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_File.h"
+#include "OTF_Filenames.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct struct_OTF_WBuffer {
+
+
+	OTF_File* file;
+
+
+	/**	Begin of the actual buffer. */
+	char* buffer;
+
+	/**	Current size of buffer. */
+	uint32_t size;
+
+	/**	Next write position in buffer. */
+	uint32_t pos;
+
+	/**	Current process inside this file buffer, necessary for state
+		machine. This must not be part of OTF_WStream because there are
+		multiple buffers per stream that might be written in parallel. */
+	uint32_t process;
+
+	/**	Current time inside this file buffer, necessary for state machine.
+		This must not be part of OTF_WStream because there are multiple
+		buffers per stream that might be written in parallel. */
+	uint64_t time;
+	
+#ifdef HAVE_ZLIB
+	/** Default size of zbuffers managed by this buffer. */
+	uint32_t zbuffersize;
+#endif /* HAVE_ZLIB */
+};
+typedef struct struct_OTF_WBuffer OTF_WBuffer;
+
+
+/**	Constructor - internal use only */
+OTF_WBuffer* OTF_WBuffer_open( const char* filename, OTF_FileManager* manager );
+
+/**	Destructor - internal use only */
+int OTF_WBuffer_close( OTF_WBuffer* wbuffer );
+
+/**	Set the size of the buffer. Cannot shrink buffer but only extend. */
+int OTF_WBuffer_setSize( OTF_WBuffer* wbuffer, size_t size );
+
+/**	Set the size of the zbuffer. */
+void OTF_WBuffer_setZBufferSize( OTF_WBuffer* wbuffer, uint32_t size );
+
+/**	Writes the buffer contents to 'file' and marks the buffer empty again. */
+int OTF_WBuffer_flush( OTF_WBuffer* wbuffer );
+
+/**	Ask the buffer to guarantee at least 'space' bytes at current writing
+	position before the next flush is necessary. Return 1 on success. */
+int OTF_WBuffer_guarantee( OTF_WBuffer* wbuffer, size_t space );
+
+
+/**	Set process state machine to 'p' and time stamp state machine to 't'.
+	If 'p' is the current process and 't' is the current time stamp nothing
+	is done. If the process has changed a process record will be written.
+	If the time has changed the new time stamp and the current process will
+	be written. If 't' is lower than the current time stamp
+	it is regarded as an error. Return != 1 on success and 0 on error. */
+int OTF_WBuffer_setTimeAndProcess( OTF_WBuffer* wbuffer, 
+	uint64_t t, uint32_t p );
+
+/* *** basic write operations *** */
+
+/**	Append a key word to the write buffer. A key word is a string without
+	quotes. Buffer flush is done if necessary. Return the number of bytes
+	written. */
+uint32_t OTF_WBuffer_writeKeyword( OTF_WBuffer* wbuffer, const char* keyword );
+
+/**	Append a string to the write buffer. A string is surrounded by quotes.
+	Buffer flush is done if necessary. Return the number of bytes written. */
+uint32_t OTF_WBuffer_writeString( OTF_WBuffer* wbuffer, const char* string );
+
+/**	Append a char to the write buffer. Buffer flush is done if necessary.
+	Return the number of bytes written (=1). */
+uint32_t OTF_WBuffer_writeChar( OTF_WBuffer* wbuffer, const char character );
+
+/**	This function append an unsigned integer 'value' in hex format to
+	the write buffer. Buffer flush is done if necessary. The return value
+	is the number of written characters. */
+uint32_t OTF_WBuffer_writeUint32( OTF_WBuffer* wbuffer, uint32_t value );
+
+/**	This function append an 64bit unsigned integer 'value' in hex format to
+	the write buffer. Buffer flush is done if necessary. The return value
+	is the number of written characters. */
+uint32_t OTF_WBuffer_writeUint64( OTF_WBuffer* wbuffer, uint64_t value );
+
+/**	Append a newline character to the buffer. Buffer flush is done if
+	necessary. Return the number of bytes written. */
+uint32_t OTF_WBuffer_writeNewline( OTF_WBuffer* wbuffer );
+
+/** internal use */
+OTF_WBuffer* OTF_WBuffer_open_zlevel( const char* filename,
+	OTF_FileManager* manager, OTF_FileCompression compression );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_WBUFFER_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WStream.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WStream.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_WStream.h	(revision 97)
@@ -0,0 +1,540 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_WStream.h
+ *
+ *  @brief Provides write access to trace streams, which consist of multiple
+ *  buffers.
+ *
+ *  \ingroup wstream
+ */
+
+/** \defgroup wstream Stream Writer Interface
+ *
+ * This interface provides functions for writing trace at stream level.
+ * A stream is part of a trace and consists of up to four buffers
+ * (event buffer, definition buffer, snapshots buffer, statistics buffer).
+ * 
+ * wstream is structured similarly to writer.
+ *
+ * Use this interface, if you want to a specific stream and the writer
+ * interface does not provide the desired access.
+ *
+ * \section wstream_example A short Example
+ *
+ *  \code
+ *  #include <assert.h>
+ *  #include "otf.h"
+ *
+ *  int main( int argc, char** argv ) {
+ *  \endcode
+ *
+ *      Declare a file manager and a writer.
+ *      \code
+ * 	    OTF_FileManager* manager;
+ * 	    OTF_WStream* wstream;
+ * 	    \endcode
+ *
+ *     	Initialize the file manager. Open at most 100 OS files.
+ *     	\code
+ *     	manager= OTF_FileManager_open( 100 );
+ * 	    assert( manager );
+ * 	    \endcode
+ *
+ * 	    Initialize the wstream object. Open file "test", writing the first stream.
+ * 	    \code
+ * 	    wstream = OTF_WStream_open( "test", 0, manager );
+ *      assert( wstream );
+ *      \endcode
+ *      
+ *      Write some definition records.
+ *      \code
+ *      OTF_WStream_writeDefTimerResolution( wstream, 0, 1000 );
+ *      OTF_WStream_writeDefProcess( wstream, 0, 1, "proc one", 0 );
+ *      \endcode
+ *
+ *      Clean up before exiting the program.
+ *      \code
+ *      OTF_WStream_close( wstream );
+ *      OTF_FileManager_close( manager );
+ *
+ *		return 0;
+ * }
+ * \endcode
+ *
+ * Compile this using $ gcc -o test test.c `otfconfig --libs`.
+ *
+ * When executing this program it only writes one file (test.0.def),
+ * containg the written records.
+ *
+ */
+
+#ifndef OTF_WSTREAM_H
+#define OTF_WSTREAM_H
+
+
+#include <stdlib.h>
+
+
+#include "OTF_inttypes.h"
+
+
+#include "OTF_Definitions.h"
+#include "OTF_FileManager.h"
+#include "OTF_WBuffer.h"
+#include "OTF_Filenames.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+struct struct_OTF_WStream {
+
+
+	/**	name stub: all files will begin with this name */
+	char* namestub;
+
+	/**	Unique id for the current stream. */
+	uint32_t id;
+
+	/**	State wether to use long or short format,
+		see OTF_WSTREAM_FORMAT_XXX macros above. */
+	uint32_t format;
+
+
+	/**	Definitions buffer. Definitions buffer carries definition
+		records. */
+	OTF_WBuffer* defBuffer;
+
+	/**	Event buffer. The event buffer carries records for actual
+		events, i.e. records with a time stamp */
+	OTF_WBuffer* eventBuffer;
+
+	/**	Snaps (snapshots) buffer. The snapshots buffer carries
+		snapshots of the whole state at a point in time - as oppossed to
+		events which only show changes in the state. This can be used to
+		start from such a snapshot instead of from the very begining. */
+	OTF_WBuffer* snapsBuffer;
+
+	/**	Statistics buffer. Statistics buffer carries statistical
+		information information about a certain time interval resp.
+		data at points of time that allow to derive statistics without
+		reading through all events of that interval. */
+	OTF_WBuffer* statsBuffer;
+
+	/** Default compression method for all buffers managed by this stream */
+	OTF_FileCompression compression;
+	
+	/** Default size of buffers managed by this WStream. */
+	uint32_t buffersizes;
+
+#ifdef HAVE_ZLIB
+	/** Default size of zbuffers managed by this RStream. */
+	uint32_t zbuffersizes;
+#endif /* HAVE_ZLIB */
+	
+	/** file handle manager */
+	OTF_FileManager* manager;
+};
+/** wstream object \ingroup wstream */
+typedef struct struct_OTF_WStream OTF_WStream;
+
+
+/**     
+ * Create a new OTF_WStream instance.
+ *
+ * @param namestub     File name prefix which is going to be used by 
+ *                     all sub-files which belong to the writer stream.
+ * @param id           Abitrary but unique identifier of the writer stream.
+ *                     Cannot be '0'.
+ * @param manager      File handle manager. 
+ *
+ * @return             Initialized OTF_WStream instance or 0 if an error
+ *                     occurred.
+ *
+ * \ingroup wstream
+ */
+OTF_WStream* OTF_WStream_open( const char* namestub, uint32_t id, 
+	OTF_FileManager* manager );
+
+
+/** 
+ * Close an OTF_WStream instance and all its related files.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         1 if instance was closed successfully and 0 otherwise.
+ *
+ * \ingroup wstream
+ */
+int OTF_WStream_close( OTF_WStream* wstream );
+
+			
+/** 
+ * Flush an OTF_WStream instance, i.e. flush all associated buffers if existing.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         1 if everything flushed successfully and 0 otherwise.
+ *
+ * \ingroup wstream
+ */
+int OTF_WStream_flush( OTF_WStream* wstream );
+
+
+/** 
+ * Returns the definition buffer of the according writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         Initialized OTF_WBuffer instance or 0 if an error occured.
+ *
+ * \ingroup wstream
+ */
+OTF_WBuffer* OTF_WStream_getDefBuffer( OTF_WStream* wstream );
+
+
+/** 
+ * Returns the event buffer of the according writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         Initialized OTF_WBuffer instance or 0 if an error occured.
+ *
+ * \ingroup wstream
+ */
+OTF_WBuffer* OTF_WStream_getEventBuffer( OTF_WStream* wstream );
+
+
+/** 
+ * Returns the snapshots buffer of the according writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         Initialized OTF_WBuffer instance or 0 if an error occured.
+ *
+ * \ingroup wstream
+ */
+OTF_WBuffer* OTF_WStream_getSnapshotBuffer( OTF_WStream* wstream );
+
+
+/** 
+ * Returns the statistics buffer of the according writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         Initialized OTF_WBuffer instance or 0 if an error occured.
+ *
+ * \ingroup wstream
+ */
+OTF_WBuffer* OTF_WStream_getStatsBuffer( OTF_WStream* wstream );
+
+
+/**
+ * Set the standard compression method for all buffers managed by this writer
+ * stream
+ *
+ * @param wstream      Pointer to an initialized OTF_WStream object. See 
+ *                     also OTF_WStream_open().
+ *
+ * @param compression  Default compression level.
+ *                     0-9, where 0 means no compression is applied, and 9 is
+ *                     the highest level of compression.
+ *
+ * @return             1 on success, 0 if an error occurs.
+ *
+ * \ingroup wstream
+ */
+int OTF_WStream_setCompression( OTF_WStream* wstream, OTF_FileCompression
+	compression );
+	
+	
+/**
+ * Return the standard compression method for all buffers managed by this writer
+ * stream
+ *
+ * @param wstream      Pointer to an initialized OTF_WStream object. See 
+ *                     also OTF_WStream_open().
+ *
+ * @return             Standard compression level for all buffers managed by
+ *                     this writer stream.
+ *
+ * \ingroup wstream
+ */
+OTF_FileCompression OTF_WStream_getCompression( OTF_WStream* wstream );
+
+
+/**
+ * Set the default buffer size for all buffers managed by this writer stream. 
+ * This is only effective for future buffers and will not change already 
+ * allocated buffers. Those can be changed with the buffers directly.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @param size     Intended buffer size.
+ *
+ * \ingroup wstream
+ */
+void OTF_WStream_setBufferSizes( OTF_WStream* wstream, uint32_t size );
+
+/** 
+ * Get the default buffer size for all buffers managed by this writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ * 
+ * @return         Default buffer size for all buffers managed by this writer
+ *                 stream.
+ *
+ * \ingroup wstream
+ */
+uint32_t OTF_WStream_getBufferSizes( OTF_WStream* wstream );
+
+/** 
+ * Set the default zbuffer size for all files managed by this writer stream.
+ * This is only effective for future files and will not change already
+ * allocated buffers. Those can be changed with the files directly.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ *
+ * @param size     Intended buffer size.
+ *
+ * \ingroup wstream
+ */
+void OTF_WStream_setZBufferSizes( OTF_WStream* wstream, uint32_t size );
+
+
+/** 
+ * Get the default zbuffer size for all files managed by this writer stream.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ *
+ * @return         Default buffer size for all buffers managed by this reader
+ *                 stream.
+ *
+ * \ingroup wstream
+ */
+uint32_t OTF_WStream_getZBufferSizes( OTF_WStream* wstream );
+
+/**
+ * Set the default ouput format.
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ *
+ * @param format   Intended output format (OTF_WSTREAM_FORMAT_{LONG,SHORT})
+ *
+ * \ingroup wstream
+ */
+void OTF_WStream_setFormat( OTF_WStream* wstream, uint32_t format );
+
+/**
+ * Get the default output format
+ *
+ * @param wstream  Pointer to an initialized OTF_WStream object. See 
+ *                 also OTF_WStream_open().
+ *
+ * @return         Default output format.
+ *
+ * \ingroup wstream
+ */
+uint32_t OTF_WStream_getFormat( OTF_WStream* wstream );
+
+
+/* *** definition record write handlers *** ******************************** */
+
+
+/**	Write a DEFINITIONCOMMENT record to stream 'wstream'. \ingroup wstream */
+int OTF_WStream_writeDefinitionComment( OTF_WStream* wstream,
+	const char* comment );
+
+/**	Write a DEFTIMERRESOLUTION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefTimerResolution( OTF_WStream* wstream,
+	uint64_t ticksPerSecond );
+
+/**	Write a DEFPROCESS record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefProcess( OTF_WStream* wstream, uint32_t deftoken,
+	const char* name, uint32_t parent );
+
+/**	Write a DEFPROCESSGROUP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefProcessGroup( OTF_WStream* wstream, uint32_t deftoken,
+	const char* name, uint32_t n, const uint32_t* array );
+
+/**	Write a DEFFUNCTION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefFunction( OTF_WStream* wstream, uint32_t deftoken,
+	const char* name, uint32_t group, uint32_t scltoken );
+
+/**	Write a DEFFUNCTIONGROUP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefFunctionGroup( OTF_WStream* wstream,
+	uint32_t deftoken, const char* name );
+
+/** Write a DEFCOLLECTIVEOPERATION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefCollectiveOperation( OTF_WStream* wstream, 
+	uint32_t collOp, const char* name, uint32_t type );
+
+/**	Write a DEFCOUNTER record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefCounter( OTF_WStream* wstream, uint32_t deftoken,
+	const char* name, uint32_t properties, uint32_t countergroup, 
+	const char* unit );
+
+/**	Write a DEFCOUNTERGROUP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefCounterGroup( OTF_WStream* wstream,
+	uint32_t deftoken, const char* name );
+
+/**	Write a DEFSCL record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefScl( OTF_WStream* wstream, uint32_t deftoken,
+	uint32_t sclfile, uint32_t sclline );
+
+/**	Write a DEFSCLFILE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefSclFile( OTF_WStream* wstream,
+	uint32_t deftoken, const char* filename );
+
+/**	Write a DEFCREATOR record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefCreator( OTF_WStream* wstream, const char* creator );
+
+/** Write a DEFVERSION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeOtfVersion( OTF_WStream* wstream );
+
+/** Write a DEFFILE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefFile( OTF_WStream* wstream, uint32_t token,
+	const char* name, uint32_t group );
+
+/** Write a DEFFILEGROUP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeDefFileGroup( OTF_WStream* wstream, uint32_t token,
+	const char* name );
+
+
+/* *** event record write handlers *** ************************************* */
+
+
+/**	Write a ENTER record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeEnter( OTF_WStream* wstream, uint64_t time,
+    uint32_t statetoken, uint32_t cpuid, uint32_t scltoken );
+
+/**	Write a RECEIVE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeRecvMsg( OTF_WStream* wstream, uint64_t time,
+    uint32_t receiver, uint32_t sender, uint32_t communicator,
+    uint32_t msgtype, uint32_t msglength, uint32_t scltoken );
+
+/**	Write a SEND record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeSendMsg( OTF_WStream* wstream, uint64_t time, 
+    uint32_t sender, uint32_t receiver, uint32_t communicator, 
+    uint32_t msgtype, uint32_t msglength, uint32_t scltoken );
+
+/**	Write a LEAVE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeLeave( OTF_WStream* wstream, uint64_t time,
+    uint32_t statetoken, uint32_t cpuid, uint32_t scltoken );
+
+/**	Write a COUNTER record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeCounter( OTF_WStream* wstream, uint64_t time, 
+    uint32_t process, uint32_t counter_token, uint64_t value );
+
+/** Write a COLLOP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeCollectiveOperation( OTF_WStream* wstream, uint64_t time, 
+    uint32_t process, uint32_t functionToken, uint32_t communicator, 
+    uint32_t rootprocess, uint32_t sent, uint32_t received, 
+    uint64_t duration, uint32_t scltoken );
+
+/** Write a #EVTCOMMENT record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeEventComment( OTF_WStream* wstream, uint64_t time, 
+    uint32_t process, const char* comment );
+
+/** Write a PROCESSBEGIN record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeBeginProcess( OTF_WStream* wstream, uint64_t time,
+    uint32_t process );
+
+/** Write a PROCESSEND record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeEndProcess( OTF_WStream* wstream, uint64_t time,
+    uint32_t process );
+
+int OTF_WStream_writeFileOperation( OTF_WStream* wstream, uint64_t time,
+	uint32_t fileid, uint32_t process, uint64_t handleid, uint32_t operation,
+	uint64_t bytes, uint64_t duration, uint32_t source );
+
+
+/* *** public snapshot record write handlers *** */
+
+
+/** Write a #TCOMMENT record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeSnapshotComment( OTF_WStream* wstream, uint64_t time, 
+    uint32_t process, const char* comment );
+
+/** Write a TENTER record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeEnterSnapshot( OTF_WStream* wstream, uint64_t time,
+    uint64_t originaltime, uint32_t statetoken, uint32_t cpuid, uint32_t scltoken );
+
+/** Write a TSEND record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeSendSnapshot( OTF_WStream* wstream, uint64_t time,
+		uint64_t originaltime, uint32_t sender, uint32_t receiver,
+		uint32_t procGroup, uint32_t type, uint32_t source );
+
+/** Write a TOPENFILE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeOpenFileSnapshot( OTF_WStream* wstream,uint64_t time,
+	uint64_t originaltime, uint32_t fileid, uint32_t process, uint64_t handleid,
+	uint32_t source );
+
+		
+/* *** public statistics record write handlers *** */
+
+
+/** Write a SUMCOMMENT record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeSummaryComment( OTF_WStream* wstream, uint64_t time, 
+    uint32_t process, const char* comment );
+
+/** Write a SUMFUNCTION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeFunctionSummary( OTF_WStream* wstream, 
+	uint64_t time, uint32_t function, uint32_t process, 
+	uint64_t count, uint64_t excltime, uint64_t incltime );
+
+/** Write a SUMFUNCTIONGROUP record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeFunctionGroupSummary( OTF_WStream* wstream, 
+	uint64_t time,  uint32_t functiongroup,  uint32_t process,  
+	uint64_t count,  uint64_t excltime,  uint64_t incltime );
+
+/** Write a SUMMESSAGE record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeMessageSummary( OTF_WStream* wstream, 
+	uint64_t time, uint32_t process, uint32_t peer, 
+	uint32_t comm,  uint32_t tag, uint64_t number_sent, uint64_t number_recved,
+	uint64_t bytes_sent,  uint64_t bytes_recved );
+
+/** Write a SUMFILEOPERATION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeFileOperationSummary( OTF_WStream* wstream, uint64_t time,
+	uint32_t fileid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+
+/** Write a SUMFILEGROUPOPERATION record to stream 'wstream'. \ingroup wstream  */
+int OTF_WStream_writeFileGroupOperationSummary( OTF_WStream* wstream, uint64_t time,
+	uint32_t groupid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+
+/*
+int OTF_WStream_writeCounterSummary( OTF_WStream* wstream, 
+	uint64_t time,  uint32_t process,  
+	uint32_t counter,  uint64_t value );
+
+int OTF_WStream_writeCollOpSummary( OTF_WStream* wstream, 
+	uint64_t time, uint32_t process,  uint32_t root,  
+	uint64_t bytes_sent, uint64_t bytes_recved );
+*/
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_WSTREAM_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Writer.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Writer.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_Writer.h	(revision 97)
@@ -0,0 +1,1180 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_Writer.h
+ *
+ *  @brief Transparently writes OTF traces which consist of multiple streams.
+ *
+ * \ingroup writer
+ */
+
+/** \defgroup writer Writer Interface
+ *
+ *  This interface should be used whenever a trace file is to be written as a
+ *  whole.  Therefore, an initial call to the OTF_Writer_open() function
+ *  allows to specify a number of streams which are going to be used to
+ *  automatically partition the recorded event data. OTF than takes over the
+ *  duty of distributing the data on multiple files.
+ *
+ *  \section writer_example A simple Example
+ *
+ *  \code
+ *  #include <assert.h>
+ *  #include "otf.h"
+ *
+ *  int main( int argc, char** argv ) {
+ *  \endcode
+ *
+ *      Declare a file manager and a writer.
+ *      \code
+ * 	    OTF_FileManager* manager;
+ * 	    OTF_Writer* writer;
+ * 	    \endcode
+ *
+ *     	Initialize the file manager. Open at most 100 OS files.
+ *     	\code
+ *     	manager= OTF_FileManager_open( 100 );
+ * 	    assert( manager );
+ * 	    \endcode
+ *
+ * 	    Initialize the writer. Open file "test", writing one stream.
+ * 	    \code
+ * 	    writer = OTF_Writer_open( "test", 1, manager );
+ *      assert( writer );
+ *      \endcode
+ *      
+ *      Write some important Definition Records.
+ *      Have a look at the specific functions to see what the parameters mean.
+ *      \code
+ *      OTF_Writer_writeDefTimerResolution( writer, 0, 1000 );
+ *      OTF_Writer_writeDefProcess( writer, 0, 1, "proc one", 0 );
+ *      OTF_Writer_writeDefFunctionGroup( writer, 0, 1000, "all functions" );
+ *      OTF_Writer_writeDefFunction( writer, 0, 1, "main", 1000, 0 );
+ *      \endcode
+ *
+ *
+ *      Write an enter and a leave record.
+ *      time = 10000, 20000
+ *      process = 1
+ *      function = 1
+ *      Sourcecode location doesn't matter, so it's zero.
+ *      \code
+ *      OTF_Writer_writeEnter( writer, 10000, 1, 1, 0 );
+ *      OTF_Writer_writeLeave( writer, 20000, 1, 1, 0 );
+ *      \endcode
+ *
+ *      Clean up before exiting the program.
+ *      \code
+ *      OTF_Writer_close( writer );
+ *      OTF_FileManager_close( manager );
+ *
+ *		return 0;
+ * }
+ * \endcode
+ *
+ * Compile this using $ gcc -o test test.c `otfconfig --libs`.
+ *
+ */
+
+#ifndef OTF_WRITER_H
+#define OTF_WRITER_H
+
+
+#include "OTF_MasterControl.h"
+#include "OTF_FileManager.h"
+#include "OTF_WBuffer.h"
+#include "OTF_WStream.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** writer object \ingroup writer */
+typedef struct struct_OTF_Writer OTF_Writer;
+
+/* *** public member functions *** */
+
+
+/**     
+ * Create a new OTF_Writer instance with a given number of automatic streams.
+ *
+ * Setting the number of streams to 0 causes the OTF_Writer object to create a
+ * separate stream for each process. Important! Explicit calls to
+ * OTF_Writer_assignProcess() can lead to an overall number of streams which
+ * exceeds the initial number of streams in this call. 
+ * OTF can reduce its file handle usage to a given number. Therefore, an 
+ * initialized file manager instance is needed as parameter. 
+ * See OTF_FileManager for further details.
+ *
+ * @param  fileNamePrefix   File name prefix which is going to be used by 
+ *                          all sub-files which belong to the trace.
+ * @param  numberOfStreams  Initial number of independent data streams to 
+ *                          be generated.
+ * @param  fileManager      File handle manager. 
+ *
+ *
+ * @return                  Initialized OTF_Writer instance or 0 if a failure
+ *                          occurred.
+ *
+ * \ingroup writer
+ */
+OTF_Writer* OTF_Writer_open( const char* fileNamePrefix, 
+                             uint32_t numberOfStreams, 
+                             OTF_FileManager* fileManager );
+
+
+/** 
+ * Close an OTF_Writer instance and all its related files.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ * 
+ * @return        1 if instance was closed successfully and 0 otherwise.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_close( OTF_Writer* writer );
+
+
+/** 
+ * Close all streams that are open in this writer instance.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ *
+ * @return        1 on success, 0 if an error occurs.
+ * 
+ * \ingroup writer
+ */
+int OTF_Writer_closeAllStreams( OTF_Writer* writer );
+
+
+/**
+ * Set the standard compression method for all buffers managed by this writer
+ *
+ * @param writer       Pointer to an initialized OTF_Writer object. See 
+ *                     also OTF_Writer_open().
+ *
+ * @param compression  compression level to apply to all following streams
+ *                     0-9, where 0 means no compression is applied, and 9 is
+ *                     the highest level of compression.
+ *
+ * @return             1 on success, 0 if an error occurs.
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_setCompression( OTF_Writer* writer, OTF_FileCompression
+	compression );
+
+	
+/**
+ * Return the standard compression method for all buffers managed by this writer
+ *
+ * @param writer       Pointer to an initialized OTF_Writer object. See 
+ *                     also OTF_Writer_open().
+ *
+ * @return             Standard compression level for all buffers managed by
+ *                     this writer.
+ *
+ * \ingroup writer
+ */
+OTF_FileCompression OTF_Writer_getCompression( OTF_Writer* writer );
+
+
+/**
+ * Set the default buffer size for all buffers managed by this Writer. 
+ * This is only effective for future buffers and will not change already 
+ * allocated buffers. Those can be changed with the buffers directly.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ * 
+ * @param size    Intended buffer size.
+ *
+ * \ingroup writer
+ */
+void OTF_Writer_setBufferSizes( OTF_Writer* writer, uint32_t size );
+
+
+/** 
+ * Get the default buffer size for all buffers managed by this Writer.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ * 
+ * @return        Default buffer size for all buffers managed by this Writer.
+ *
+ * \ingroup writer
+ */
+uint32_t OTF_Writer_getBufferSizes( OTF_Writer* writer );
+
+
+/**
+ * Set the default zbuffer size for all buffers managed by this Reader.
+ * This is only effective for future files and will not change already
+ * allocated zbuffers. Those can be changed with the files directly.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ *
+ * @param size    Intended zbuffer size.
+ *
+ * \ingroup writer
+ */
+void OTF_Writer_setZBufferSizes( OTF_Writer* writer, uint32_t size );
+
+/** 
+ * Get the default zbuffer size.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ *
+ * @return  zbuffer size.
+ *
+ * \ingroup writer
+ */
+uint32_t OTF_Writer_getZBufferSizes( OTF_Writer* writer );
+
+/**
+ * Set the default ouput format. The format is applied to all streams opened by
+ * the writer.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ *
+ * @param format  Intended output format (OTF_WSTREAM_FORMAT_{LONG,SHORT}).
+ *
+ * \ingroup writer
+ */
+void OTF_Writer_setFormat( OTF_Writer* writer, uint32_t format );
+
+
+/**
+ * Get the default output format of all streams managed by this writer.
+ *
+ * @param writer  Pointer to an initialized OTF_Writer object. See 
+ *                also OTF_Writer_open().
+ *
+ * @return        Default output format.
+ *
+ * \ingroup writer
+ */
+uint32_t OTF_Writer_getFormat( OTF_Writer* writer );
+
+
+/**     
+ * Explicitly assign a given process to a specific stream.
+ *
+ * Mind that 0 is not a valid stream or process identifier but a reserved
+ * value. By default, processes are automatically assigned to streams.
+ * Therefore, this call is optional. 
+ * 
+ * @param writer   Pointer to an initialized OTF_Writer object. See 
+ *                 also OTF_Writer_open().
+ * @param process  Process identifier. See also OTF_Writer_writeDefProcess().
+ * @param stream   Target stream identifier with 
+ *                 0 < stream <= number of streams as defined in 
+ *                 OTF_Writer_open().
+ *
+ * @return         1 on success, 0 if an error occurs. 
+ *
+ * \ingroup writer
+ */
+uint32_t OTF_Writer_assignProcess( OTF_Writer* writer,
+                                   uint32_t process, 
+                                   uint32_t stream );
+
+
+/**
+ * Get a pointer to the master control object of the given writer instance.
+ *
+ * @param writer   Pointer to an initialized OTF_Writer object. See 
+ *                 also OTF_Writer_open().
+ *
+ * @return         Pointer to a master control object. See OTF_MasterControl.
+ *
+ * \ingroup writer
+ */
+OTF_MasterControl* OTF_Writer_getMasterControl( OTF_Writer* writer );
+
+
+/**
+ * Set an alternative master control object. Use this only right after 
+ * initialization but never after having written some records already!
+ *
+ * @param writer   Pointer to an initialized OTF_Writer object. See 
+ *                 also OTF_Writer_open().
+ * @param mc       new master control object
+ *                 
+ *
+ * \ingroup writer
+ */
+void OTF_Writer_setMasterControl( OTF_Writer* writer, OTF_MasterControl* mc );
+
+
+/* Methods for writing public definition records ************************** */
+
+
+/**
+ * Write a comment record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param stream    Target stream identifier with 
+ *                  0 < stream <= number of streams as defined in 
+ *                  OTF_Writer_open().
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefinitionComment( OTF_Writer* writer, 
+                                       uint32_t stream, 
+                                       const char* comment );
+
+
+/**
+ * Write the timer resolution definition record. All timed event records
+ * will be interpreted according to this definition. By default, a timer
+ * resultion of 1 us i.e. 1,000,000 clock ticks is assumed. 
+ *
+ * @param writer          Pointer to an initialized OTF_Writer object. See 
+ *                        also OTF_Writer_open().
+ * @param stream          Target stream identifier with 
+ *                        0 < stream <= number of streams as defined in 
+ *                        OTF_Writer_open().
+ * @param ticksPerSecond  Clock ticks per second of the timer.
+ *
+ * @return                1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefTimerResolution( OTF_Writer* writer, 
+                                        uint32_t stream,
+                                        uint64_t ticksPerSecond );
+
+
+/**
+ * Write a process definition record. 
+ *
+ * @param writer   Pointer to an initialized OTF_Writer object. See 
+ *                 also OTF_Writer_open().
+ * @param stream   Target stream identifier with 
+ *                 0 < stream <= number of streams as defined in 
+ *                 OTF_Writer_open().
+ * @param process  Arbitrary but unique process identifier > 0.        
+ * @param name     Name of the process e.g. "Process X".
+ * @param parent   Previously declared parent process identifier or 0 if 
+ *                 process has no parent.
+ *
+ * @return         1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefProcess( OTF_Writer* writer, 
+                                uint32_t stream,
+                                uint32_t process, 
+                                const char* name, 
+                                uint32_t parent );
+
+
+/**
+ * Write a process group definition record.
+ *
+ * OTF supports groups of processes. Their main objective is to classify
+ * processes depending on arbitrary characteristics. Processes can reside
+ * in multiple groups. This record type is optional.
+ *
+ * @param writer         Pointer to an initialized OTF_Writer object. See 
+ *                       also OTF_Writer_open().
+ * @param stream         Target stream identifier with 
+ *                       0 < stream <= number of streams as defined in 
+ *                       OTF_Writer_open().
+ * @param procGroup      Arbitrary but unique process group identifier > 0.
+ * @param name           Name of the process group e.g. "Well Balanced".
+ * @param numberOfProcs  The number of processes in the process group.
+ * @param procs          Vector of process identifiers or previously defined
+ *                       process group identifiers as defined with
+ *                       OTF_Writer_writeDefProcess() resp. 
+ *                       OTF_Writer_writeDefProcessGroup.
+ *
+ * @return               1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefProcessGroup( OTF_Writer* writer, 
+                                     uint32_t stream,
+                                     uint32_t procGroup, 
+                                     const char* name, 
+                                     uint32_t numberOfProcs, 
+                                     const uint32_t* procs );
+
+
+/**
+ * Write a function definition record.
+ *
+ * Defines a function of the given name. Functions can optionally belong to a
+ * certain function group to be defined with the
+ * OTF_Writer_writeDefFunctionGroup() call. A source code reference can
+ * be added to the definition aswell.
+ *
+ * @param writer     Pointer to an initialized OTF_Writer object. See 
+ *                   also OTF_Writer_open().
+ * @param stream     Target stream identifier with 
+ *                   0 < stream <= number of streams as defined in 
+ *                   OTF_Writer_open().
+ * @param func       Arbitrary but unique function identifier > 0.
+ * @param name       Name of the function e.g. "DoSomething".
+ * @param funcGroup  A function group identifier preliminary defined with
+ *                   OTF_Writer_writeDefFunctionGroup() or 0 for no
+ *                   function group assignment.        
+ * @param source     Reference to the function's source code location 
+ *                   preliminary defined with OTF_Writer_writeDefScl() or
+ *                   0 for no source code location assignment.
+ *
+ * @return           1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefFunction( OTF_Writer* writer, 
+                                 uint32_t stream,
+                                 uint32_t func, 
+                                 const char* name, 
+                                 uint32_t funcGroup, 
+                                 uint32_t source );
+
+
+/**
+ * Write a function group definition record.
+ *
+ * @param writer     Pointer to an initialized OTF_Writer object. See 
+ *                   also OTF_Writer_open().
+ * @param stream     Target stream identifier with 
+ *                   0 < stream <= number of streams as defined in 
+ *                   OTF_Writer_open().
+ * @param funcGroup  An arbitrary but unique function group identifier > 0.
+ * @param name       Name of the function group e.g. "Computation".
+ *
+ * @return           1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefFunctionGroup( OTF_Writer* writer, 
+                                      uint32_t stream,
+                                      uint32_t funcGroup, 
+                                      const char* name );
+
+
+/**
+ * Write a collective operation definition record.
+ *
+ * @param writer      Initialized OTF_Writer instance.
+ * @param stream      Target stream identifier with 
+ *                    0 < stream <= number of streams as defined in 
+ *                    OTF_Writer_open().
+ * @param collOp      An arbitrary but unique collective op. identifier > 0.
+ * @param name        Name of the collective operation e.g. "MPI_Bcast".
+ * @param type        One of the five supported collective classes:
+ *                    OTF_COLLECTIVE_TYPE_UNKNOWN (default),
+ *                    OTF_COLLECTIVE_TYPE_BARRIER,
+ *                    OTF_COLLECTIVE_TYPE_ONE2ALL,
+ *                    OTF_COLLECTIVE_TYPE_ALL2ONE,
+ *                    OTF_COLLECTIVE_TYPE_ALL2ALL.
+ *
+ * @return            1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefCollectiveOperation( OTF_Writer* writer, 
+                                            uint32_t stream,
+                                            uint32_t collOp,
+                                            const char* name,
+                                            uint32_t type );
+
+
+/**
+ * Write a counter definition record.
+ *
+ * @param writer        Initialized OTF_Writer instance.
+ * @param stream        Target stream identifier with 
+ *                      0 < stream <= number of streams as defined in 
+ *                      OTF_Writer_open().
+ * @param counter       An arbitrary but unique counter identifier.
+ * @param name          Name of the counter e.g. "Cache Misses".
+ * @param properties    A combination of a type and scope counter property.
+ *                      OTF_COUNTER_TYPE_ACC (default) represents a counter
+ *                      with monotonously increasing values e.g. a FLOP 
+ *                      counter. OTF_COUNTER_TYPE_ABS on the other hand 
+ *                      defines a counter with alternating absolute values e.g.
+ *                      the memory usage of a process. The following counter
+ *                      measurement scopes are supported: 
+ *                      OTF_COUNTER_SCOPE_START (default) always refers to the 
+ *                      start of the process, OTF_COUNTER_SCOPE_POINT refers
+ *                      to exactly this moment in time, OTF_COUNTER_SCOPE_LAST
+ *                      relates to the previous measurement, and
+ *                      OTF_COUNTER_SCOPE_NEXT to the next measurement.
+ *                      Examples: OTF_COUNTER_TYPE_ACC + 
+ *                      OTF_COUNTER_SCOPE_START should be used for most 
+ *                      standard hardware (PAPI) counters. 
+ *                      OTF_COUNTER_TYPE_ABS + OTF_COUNTER_SCOPE_POINT could
+ *                      be used to record information 'spikes'.
+ *                      OTF_COUNTER_TYPE_ABS + OTF_COUNTER_SCOPE_NEXT works
+ *                      for memory allocation recording. 
+ * @param counterGroup  A previously defined counter group identifier or 0 
+ *                      for no group.
+ * @param unit          Unit of the counter e.g. "#" for "number of..." or 0 
+ *                      for no unit. 
+ *
+ * @return              1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefCounter( OTF_Writer* writer,
+                                uint32_t stream,
+                                uint32_t counter,
+                                const char* name,
+                                uint32_t properties, 
+                                uint32_t counterGroup, 
+                                const char* unit );
+
+
+/**
+ * Write a counter group definition record.
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param counterGroup An arbitrary but unique counter group identifier.
+ * @param name         Counter group name.
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefCounterGroup( OTF_Writer* writer, 
+                                     uint32_t stream,
+                                     uint32_t counterGroup, 
+                                     const char* name );
+
+
+/**
+ * Write a source code location (SCL) record.
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param source       Arbitrary but unique source code location 
+ *                     identifier > 0.
+ * @param sourceFile   Previously defined source file identifier. See 
+ *                     OTF_Writer_writeDefSclFile(). 
+ * @param line         Line number.
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefScl( OTF_Writer* writer,
+                            uint32_t stream,
+                            uint32_t source,
+                            uint32_t sourceFile, 
+                            uint32_t line );
+
+
+/**
+ * Write a source code location (SCL) file record.
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param sourceFile   Arbitrary but unique source code location 
+ *                     identifier != 0.
+ * @param name         File name. 
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefSclFile( OTF_Writer* writer,
+                                uint32_t stream, 
+                                uint32_t sourceFile,
+                                const char* name );
+
+
+/**
+ * depricated. The Otf-Version-record is generated automatically at beginning of
+ * tracing in the global definiton stream.
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeOtfVersion( OTF_Writer* writer, uint32_t stream );
+
+
+/**
+ * Write a creator record. 
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param creator      String which identifies the creator of the 
+ *                     file e.g. "TAU Version x.y.z".
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefCreator( OTF_Writer* writer, uint32_t stream,
+                                const char* creator );
+
+
+
+
+/**
+ * Write a file definition record
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param token        Arbitrary, unique identifier for the file.
+ *                     Has to be > 0.
+ * @param name         Name of the file.
+ * @param group        File group identifier or 0 for no group.
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefFile( OTF_Writer* writer,
+                             uint32_t stream,
+                             uint32_t token,
+                             const char* name,
+                             uint32_t group );
+
+
+/**
+ * Write a file group definition record
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param stream       Target stream identifier with 
+ *                     0 < stream <= number of streams as defined in 
+ *                     OTF_Writer_open().
+ * @param token        Arbitrary, unique identifier for the file group.
+ *                     Has to be > 0.
+ * @param name         Name of the file group.
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeDefFileGroup( OTF_Writer* writer,
+                                  uint32_t stream,
+                                  uint32_t token,
+                                  const char* name );
+
+
+/**
+ * Write a function entry record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      The time when the function entry took place.
+ * @param function  Function to be entered as defined with 
+ *                  OTF_Writer_defFunction.
+ * @param process   Process where action took place.
+ * @param source    Optional reference to source code.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeEnter( OTF_Writer* writer, 
+                           uint64_t time, 
+                           uint32_t function, 
+                           uint32_t process, 
+                           uint32_t source );
+
+
+/**
+ * Write a function leave record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      The time when the function leave took place.
+ * @param function  Function which was left or 0 if stack integrety checking
+ *                  is not needed.
+ * @param process   Process where action took place.
+ * @param source    Explicit source code location or 0.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeLeave( OTF_Writer* writer, 
+                           uint64_t time, 
+                           uint32_t function, 
+                           uint32_t process, 
+                           uint32_t source );
+
+
+/**
+ * Write a message retrieval record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      The time when the message was received.
+ * @param receiver  Identifier of receiving process.
+ * @param sender    Identifier of sending process.
+ * @param procGroup Optional process-group sender and receiver belong to,
+ *                  '0' for no group.
+ * @param tag       Optional message type information.
+ * @param length    Optional message length information.
+ * @param source    Optional reference to source code.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeRecvMsg( OTF_Writer* writer, 
+                             uint64_t time, 
+                             uint32_t receiver, 
+                             uint32_t sender, 
+                             uint32_t procGroup, 
+                             uint32_t tag, 
+                             uint32_t length, 
+                             uint32_t source );
+
+
+/**
+ * Write a message send record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      The time when the message was send.
+ * @param sender    Sender of the message.
+ * @param receiver  Receiver of the message.
+ * @param procGroup Optional process-group sender and receiver belong to,
+ *                  '0' for no group.
+ * @param tag       Optional message type information.
+ * @param length    Optional message length information.
+ * @param source    Optional reference to source code.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeSendMsg( OTF_Writer* writer, 
+                             uint64_t time, 
+                             uint32_t sender, 
+                             uint32_t receiver, 
+                             uint32_t procGroup, 
+                             uint32_t tag, 
+                             uint32_t length, 
+                             uint32_t source );
+
+
+/**
+ * Write a counter measurement record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Time when counter was measured.
+ * @param process   Process where counter measurment took place.
+ * @param counter   Counter which was measured. 
+ * @param value     Counter value.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeCounter( OTF_Writer* writer, 
+                             uint64_t time, 
+                             uint32_t process, 
+                             uint32_t counter, 
+                             uint64_t value );
+
+
+/**
+ * Write a collective operation member record.
+ *
+ * @param writer      Initialized OTF_Writer instance.
+ * @param time        Time when collective operation was entered by member.
+ * @param process     Process identifier i.e. collective member. 
+ * @param collective  Collective identifier to be defined with
+ *                    OTF_Writer_writeDefCollectiveOperation(). 
+ * @param procGroup   Group of processes participating in this collective.
+ * @param rootProc    Root process if != 0.
+ * @param sent        Data volume sent by member or 0.
+ * @param received    Data volumd received by member or 0.
+ * @param duration    Time spent in collective operation.
+ * @param source      Explicit source code location or 0.
+ *
+ * @return            1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeCollectiveOperation( OTF_Writer* writer, 
+                                         uint64_t time, 
+                                         uint32_t process, 
+                                         uint32_t collective, 
+                                         uint32_t procGroup, 
+                                         uint32_t rootProc, 
+                                         uint32_t sent, 
+                                         uint32_t received, 
+                                         uint64_t duration, 
+                                         uint32_t source );
+
+
+/**
+ * Write a comment record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+ 
+int OTF_Writer_writeEventComment( OTF_Writer* writer, 
+                                  uint64_t time, 
+                                  uint32_t process, 
+                                  const char* comment );
+
+
+/**
+ * Write a begin process record
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Time when process was referenced for the first time. 
+ * @param process   Process identifier > 0.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+ 
+int OTF_Writer_writeBeginProcess( OTF_Writer* writer,
+                                  uint64_t time,
+                                  uint32_t process );
+
+
+/**
+ * Write a end process record
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Time when process was referenced for the last time. 
+ * @param process   Process identifier > 0.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+ 
+int OTF_Writer_writeEndProcess( OTF_Writer* writer,
+                                uint64_t time,
+                                uint32_t process );
+
+
+/**
+ * Write an file operation record
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ *
+ * @param time      Time when process was referenced for the last time. 
+ *
+ * @param fileid    File identifier > 0.
+ *
+ * @param handleid  File open identifier.
+ *
+ * @param process   Process identifier > 0.
+ *
+ * @param operation Type of file operation @see OTF_Handler_FileOperation()
+ *
+ * @param bytes     Depends on operation @see OTF_Handler_FileOperation()
+ * @param duration  time spent in the file operation
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeFileOperation( OTF_Writer* writer,
+                                   uint64_t time,
+                                   uint32_t fileid,
+                                   uint32_t process,
+                                   uint64_t handleid,
+                                   uint32_t operation,
+                                   uint64_t bytes,
+                                   uint64_t duration,
+                                   uint32_t source );
+
+/* *** public snapshot record write handlers *** */
+
+/**
+ * Write a snapshot comment record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+ 
+int OTF_Writer_writeSnapshotComment( OTF_Writer* writer, 
+                                  uint64_t time, 
+                                  uint32_t process, 
+                                  const char* comment );
+
+
+/** 
+ * Write an enter snapshot which provides information about a past
+ * function call
+ *
+ * @param writer        Initialized OTF_Writer instance.
+ * @param time          Time when the snapshot was written(current time).
+ * @param originaltime  Time when the according enter record was entered.
+ *                      This call is still on the stack.(It has not been left
+ *                      yet)
+ * @param function      Function that the has been entered
+ *                      OTF_Writer_defFunction.
+ * @param process       Process where action took place.
+ * @param source        Optional reference to source code.
+ *
+ * @return              1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeEnterSnapshot( OTF_Writer* writer, 
+                           uint64_t time, 
+                           uint64_t originaltime, 
+                           uint32_t function, 
+                           uint32_t process, 
+                           uint32_t source );
+
+/**
+ * Write a send snapshot which provides information about a past
+ * message send operation that is still pending, i.e. not yet received
+ *
+ * @param writer        Initialized OTF_Writer instance.
+ * @param time          Time when the snapshot was written(current time).
+ * @param originaltime  Time when the message was sent
+ * @param sender        Sender of the message.
+ * @param receiver      Receiver of the message.
+ * @param procGroup     Optional process-group sender and receiver belong to,
+ *                      '0' for no group.
+ * @param tag           Optional message type information.
+ * @param source        Optional reference to source code.
+ *
+ * @return              1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeSendSnapshot( OTF_Writer* writer,
+                                  uint64_t time,
+                                  uint64_t originaltime,
+                                  uint32_t sender,
+                                  uint32_t receiver,
+                                  uint32_t procGroup,
+                                  uint32_t tag,
+                                  uint32_t source );
+
+
+/**
+ * Write a snapshot record for an open (and not yet closed) file
+ *
+ * @param writer        Initialized OTF_Writer instance.
+ * @param time          Time when the snapshot was written(current time).
+ * @param originaltime  Time when the message was sent.
+ * @param fileid        File identifier.
+ * @param process       Process where the file was opened.
+ * @param handleid      Unique file open identifier. @see OTF_Handler_FileOperation()
+ * @param source        Optional reference to source code.
+ *
+ * @return              1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeOpenFileSnapshot( OTF_Writer* writer,
+                                      uint64_t time,
+                                      uint64_t originaltime,
+                                      uint32_t fileid,
+                                      uint32_t process,
+                                      uint64_t handleid,
+                                      uint32_t source );
+
+
+                           
+/* *** public statistics record write handlers *** */
+
+
+/**
+ * Write a summary comment record.
+ *
+ * @param writer    Initialized OTF_Writer instance.
+ * @param time      Comments need a timestamp for a proper positioning in the 
+ *                  trace.
+ * @param process   Comments also need a process identifier for a proper 
+ *                  positioning in the trace. 
+ * @param comment   Arbitrary comment string.
+ *
+ * @return          1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+ 
+int OTF_Writer_writeSummaryComment( OTF_Writer* writer, 
+                                  uint64_t time, 
+                                  uint32_t process, 
+                                  const char* comment );
+
+
+/**
+ * Write a function summary record.
+ *
+ * @param writer       Initialized OTF_Writer instance.
+ * @param time         Time when summary was computed. 
+ * @param function     Function as defined with 
+ *                     OTF_Handler_DefFunction.
+ * @param process      Process of the given function.
+ * @param count        Number of invocations.
+ * @param excltime     Time spent exclusively in the given function.
+ * @param incltime     Time spent in the given function including all
+ *                     sub-routine calls.
+ *
+ * @return             1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+
+int OTF_Writer_writeFunctionSummary( OTF_Writer* writer, 
+        uint64_t time, uint32_t function, uint32_t process, 
+        uint64_t count, uint64_t excltime, uint64_t incltime );
+
+/**
+ * Write a functiongroup summary record.
+ *
+ * @param writer         Initialized OTF_Writer instance.
+ * @param time           Time when summary was computed. 
+ * @param functiongroup  Function group as defined with 
+ *                       OTF_Handler_DefFunctionGroup.
+ * @param process        Process of the given function group.
+ * @param count          Number of invocations.
+ * @param excltime       Time spent exclusively in the given function group.
+ * @param incltime       Time spent in the given function group including all
+ *                       sub-routine calls.
+ *
+ * @return               1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+
+int OTF_Writer_writeFunctionGroupSummary( OTF_Writer* writer, 
+        uint64_t time,  uint32_t functiongroup,  uint32_t process,  
+        uint64_t count,  uint64_t excltime,  uint64_t incltime );
+
+/**
+ * Write a message summary record.
+ *
+ * @param writer         Initialized OTF_Writer instance.
+ * @param time           Time when summary was computed. 
+ * @param process        Process where messages originated.
+ * @param peer           Process where the message is sent to
+ * @param comm           Communicator of message summary
+ * @param tag            Message type/tag.
+ * @param number_sent    The number of messages sent.
+ * @param number_recved  The number of messages received.
+ * @param bytes_sent     The number of bytes sent via messages of the given
+ *                       type.
+ * @param bytes_recved   The number of bytes received through messages of the 
+ *                       given type.
+ *
+ * @return               1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+
+int OTF_Writer_writeMessageSummary( OTF_Writer* writer, 
+        uint64_t time, uint32_t process, uint32_t peer,
+        uint32_t comm, uint32_t tag,  uint64_t number_sent,
+        uint64_t number_recved, uint64_t bytes_sent, uint64_t bytes_recved );
+
+
+/**
+ * Writes a file operation summary record.
+ *
+ * @param writer         Initialized OTF_Writer instance.
+ * @param time           Time when summary was computed.
+ * @param fileid         File identifier or 0 for all  files.
+ * @param process        Process where file operations occured.
+ * @param nopen          Number of files opened.
+ * @param nclose         Number of files closed.
+ * @param nread          Number of read events.
+ * @param nwrite         Number of write events.
+ * @param nseek          Number of seek events.
+ * @param bytesread      Number of bytes read.
+ * @param byteswrite     Number of bytes written.
+ *
+ * @return               1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeFileOperationSummary( OTF_Writer* writer, uint64_t time,
+	uint32_t fileid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+
+
+/**
+ * Writes a file group operation summary record.
+ *
+ * @param writer         Initialized OTF_Writer instance.
+ * @param time           Time when summary was computed.
+ * @param groupid        File group identifier or 0 for all  files/groups.
+ * @param process        Process where file operations occured.
+ * @param nopen          Number of files opened.
+ * @param nclose         Number of files closed.
+ * @param nread          Number of read events.
+ * @param nwrite         Number of write events.
+ * @param nseek          Number of seek events.
+ * @param bytesread      Number of bytes read.
+ * @param byteswrite     Number of bytes written.
+ *
+ * @return               1 on success, 0 if an error occurs.       
+ *
+ * \ingroup writer
+ */
+int OTF_Writer_writeFileGroupOperationSummary( OTF_Writer* writer, uint64_t time,
+	uint32_t groupid, uint32_t process, uint64_t nopen, uint64_t nclose,
+	uint64_t nread, uint64_t nwrite, uint64_t nseek, uint64_t bytesread,
+	uint64_t byteswrite );
+/* *** private member functions *** */
+
+
+/** For a process with id 'processId' return a stream id of the stream the
+    data is to be written to. If no mapping has been set so far it is defined
+    in a way such that it is added to the stream with the least processes.
+	\ingroup writer */
+uint32_t OTF_Writer_mapProcess( OTF_Writer* writer, uint32_t processId );
+
+
+/** Return the stream with the given stream id. If there is no such stream yet
+    create one and append it to 'streams'. \ingroup writer */
+OTF_WStream* OTF_Writer_getStream( OTF_Writer* writer, uint32_t stream );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_WRITER_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes.h	(revision 97)
@@ -0,0 +1,55 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_inttypes.h
+ *
+ *  @brief Deals with all data type related issues.
+ *
+ *  \ingroup misc
+ */
+
+
+#ifndef OTF_INTTYPES_H
+#define OTF_INTTYPES_H
+
+#if defined(_WIN32) /* windows */
+#	include "OTF_inttypes_win.h"
+#else /* unix */
+#	include "OTF_inttypes_unix.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/** Converts unsigned integers of 8, 16, 32 or 64 bit length into OTF counter values. */
+uint64_t OTF_Unsigned2Counter( uint64_t value );
+/** Converts OTF counter values to unsigned integers of 8, 16, 32 or 64 bit length. */
+uint64_t OTF_Counter2Unsigned( uint64_t value );
+
+
+/** Converts signed integers of 8, 16, 32 or 64 bit length to OTF counter values. */
+uint64_t OTF_Signed2Counter( int64_t value );
+/** Converts OTF counter values to signed integers of 8, 16, 32 or 64 bit length. */
+int64_t OTF_Counter2Signed( uint64_t value );
+
+
+/** Converts single precision floating point variables to OTF counter values. */
+uint64_t OTF_Float2Counter( float value );
+/** Converts OTF counter values to single precision floating point values. */
+float OTF_Counter2Float( uint64_t value );
+
+
+/** Converts double precision floating point values to OTF counter values. */
+uint64_t OTF_Double2Counter( double value );
+/** Converts OTF counter values to double precision floating point values. */
+double OTF_Counter2Double( uint64_t value );
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* OTF_INTTYPES_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes_unix.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes_unix.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/OTF_inttypes_unix.h	(revision 97)
@@ -0,0 +1,53 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/** 
+ *  @file OTF_inttypes_unix.h
+ *
+ *  @brief Deals with all data type related issues.
+ *
+ *  \ingroup misc
+ */
+
+
+#ifndef OTF_INTTYPES_UNIX_H
+#define OTF_INTTYPES_UNIX_H
+
+#define OTF_HAVE_STDINT_H 1
+#define OTF_HAVE_INTTYPES_H 1
+#define OTF_SIZEOF_LONG 8
+
+#ifdef __sgi
+#	undef OTF_HAVE_STDINT_H
+#	define OTF_HAVE_STDINT_H 0
+#endif
+
+#if OTF_HAVE_STDINT_H
+#	include <stdint.h>
+#elif OTF_HAVE_INTTYPES_H
+#	include <inttypes.h>
+#else /* OTF_HAVE_STDINT_H || OTF_HAVE_INTTYPES_H */
+
+	typedef signed char                     int8_t;
+	typedef signed short int                int16_t;
+	typedef signed int                      int32_t;
+#	if OTF_SIZEOF_LONG == 8
+		typedef signed long int         int64_t;
+#	else /* OTF_SIZEOF_LONG */
+		typedef signed long long int    int64_t;
+#	endif /* OTF_SIZEOF_LONG */
+
+	typedef unsigned char                   uint8_t;
+	typedef unsigned short int              uint16_t;
+	typedef unsigned int                    uint32_t;
+#	if OTF_SIZEOF_LONG == 8
+		typedef unsigned long int       uint64_t;
+#	else /* OTF_SIZEOF_LONG */
+		typedef unsigned long long int  uint64_t;
+#	endif /* OTF_SIZEOF_LONG */
+
+#endif /* OTF_HAVE_INTTYPES_H || OTF_HAVE_STDINT_H */
+
+#endif /* OTF_INTTYPES_UNIX_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/opari_omp.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/opari_omp.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/opari_omp.h	(revision 97)
@@ -0,0 +1,13 @@
+/*************************************************************************/
+/* OPARI Version 1.1                                                     */
+/* Copyright (c) 2001-2005                                                    */
+/* Forschungszentrum Juelich, Zentralinstitut fuer Angewandte Mathematik */
+/*************************************************************************/
+
+#ifndef OPARI_OMP_H
+#define OPARI_OMP_H
+
+  #ifdef _OPENMP
+    #include <omp.h>
+  #endif
+#endif
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/otf.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/otf.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/otf.h	(revision 97)
@@ -0,0 +1,88 @@
+/*
+ This is part of the OTF library. Copyright by ZIH, TU Dresden 2005-2008.
+ Authors: Andreas Knuepfer, Holger Brunst, Ronny Brendel, Thomas Kriebitzsch
+*/
+
+/**
+ *  \mainpage Open Trace Format API Documentation
+ *
+ *  \section introduction Introduction
+ *
+ *  This library supports efficient parallel and distributed access to trace
+ *  data and offers selective reading access regarding arbitrary time
+ *  intervals, process selection and record types. Optional auxiliary
+ *  information can assist this selective access.
+ *
+ *  The Open Trace Format makes use of a portable ASCII encoding.
+ *  It distributes single traces to multiple so called streams
+ *  with one or more files each. Merging of records from multiple files is done
+ *  transparently by the OTF library. The number of possible streams is not
+ *  limited by the number of available file handles.
+ *
+ *
+ *   For more information read the specification (docu/api/specification.pdf)
+ *
+ *   OTF is available under the BSD open source license that allows free usage
+ *   for academic and commercial applications.
+ *
+ *
+ *  \section quicklinks Quick Links
+ *
+ *   \subsection interfaces Interfaces
+ *     - \ref reader "Global Reader" - \ref rstream "Stream Reader"
+ *     - \ref writer "Global Writer" - \ref wstream "Stream Writer "
+ *     - \ref handler "Handlers" - \ref ha "Handler Array"
+ *
+ *     - \ref fm "File Manager"
+ *     - \ref mc "Master Control"
+ *
+ *     - \ref misc "Miscellaneous"
+ *
+ *   \subsection examples Examples
+ *     - \ref reader_example1 "Reader"
+ *     - \ref reader_example2 "Reader 2"
+ *     - \ref rstream_example "Stream Reader"
+ *     - \ref writer_example "Writer"
+ *     - \ref wstream_example "Stream Writer"
+ *     - \ref mc_example "Master Control"
+ *
+ *   \subsection Contact
+ *     - report bugs to andreas.knuepfer@tu-dresden.de
+ *     - <a href="http://www.tu-dresden.de/zih/otf">OTF-Home</a>
+ *
+ */
+
+/** 
+ *  @file otf.h
+ * 
+ *  @brief Main include file for applications using OTF.
+ */
+
+
+/**
+ * \defgroup misc Miscellaneous
+ */
+
+/**
+ * \defgroup internal Internal Interfaces
+ *
+ * All files in this module contain Interfaces that are not meant to be accessed directly.
+ */
+
+#ifndef OTF_H
+#define OTF_H
+
+
+#include "OTF_Definitions.h"
+#include "OTF_FileManager.h"
+#include "OTF_Filenames.h"
+#include "OTF_HandlerArray.h"
+#include "OTF_MasterControl.h"
+#include "OTF_RStream.h"
+#include "OTF_Reader.h"
+#include "OTF_WStream.h"
+#include "OTF_Writer.h"
+
+
+#endif /* OTF_H */
+
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/pomp_lib.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/pomp_lib.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/pomp_lib.h	(revision 97)
@@ -0,0 +1,89 @@
+/*************************************************************************/
+/* OPARI Version 1.1                                                     */
+/* Copyright (c) 2001-2005                                                    */
+/* Forschungszentrum Juelich, Zentralinstitut fuer Angewandte Mathematik */
+/*************************************************************************/
+
+#ifndef POMP_LIB_H
+#define POMP_LIB_H
+
+#include "opari_omp.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct ompregdescr {
+  char* name;                  /* name of construct                     */
+  char* sub_name;              /* optional: region name                 */
+  int   num_sections;          /* sections only: number of sections     */
+  char* file_name;             /* source code location                  */
+  int   begin_first_line;      /* line number first line opening pragma */
+  int   begin_last_line;       /* line number last  line opening pragma */
+  int   end_first_line;        /* line number first line closing pragma */
+  int   end_last_line;         /* line number last  line closing pragma */
+  void* data;                  /* space for performance data            */
+  struct ompregdescr* next;    /* for linking                           */
+};
+
+extern int POMP_MAX_ID;
+
+extern struct ompregdescr* pomp_rd_table[];
+
+extern void POMP_Finalize(void);
+extern void POMP_Init(void);
+extern void POMP_Off(void);
+extern void POMP_On(void);
+extern void POMP_Begin(struct ompregdescr* r);
+extern void POMP_End(struct ompregdescr* r);
+
+#ifdef _OPENMP
+extern void POMP_Atomic_enter(struct ompregdescr* r);
+extern void POMP_Atomic_exit(struct ompregdescr* r);
+extern void POMP_Barrier_enter(struct ompregdescr* r);
+extern void POMP_Barrier_exit(struct ompregdescr* r);
+extern void POMP_Flush_enter(struct ompregdescr* r);
+extern void POMP_Flush_exit(struct ompregdescr* r);
+extern void POMP_Critical_begin(struct ompregdescr* r);
+extern void POMP_Critical_end(struct ompregdescr* r);
+extern void POMP_Critical_enter(struct ompregdescr* r);
+extern void POMP_Critical_exit(struct ompregdescr* r);
+extern void POMP_For_enter(struct ompregdescr* r);
+extern void POMP_For_exit(struct ompregdescr* r);
+extern void POMP_Master_begin(struct ompregdescr* r);
+extern void POMP_Master_end(struct ompregdescr* r);
+extern void POMP_Parallel_begin(struct ompregdescr* r);
+extern void POMP_Parallel_end(struct ompregdescr* r);
+extern void POMP_Parallel_fork(struct ompregdescr* r);
+extern void POMP_Parallel_join(struct ompregdescr* r);
+extern void POMP_Section_begin(struct ompregdescr* r);
+extern void POMP_Section_end(struct ompregdescr* r);
+extern void POMP_Sections_enter(struct ompregdescr* r);
+extern void POMP_Sections_exit(struct ompregdescr* r);
+extern void POMP_Single_begin(struct ompregdescr* r);
+extern void POMP_Single_end(struct ompregdescr* r);
+extern void POMP_Single_enter(struct ompregdescr* r);
+extern void POMP_Single_exit(struct ompregdescr* r);
+extern void POMP_Workshare_enter(struct ompregdescr* r);
+extern void POMP_Workshare_exit(struct ompregdescr* r);
+
+extern void POMP_Init_lock(omp_lock_t *s);
+extern void POMP_Destroy_lock(omp_lock_t *s);
+extern void POMP_Set_lock(omp_lock_t *s);
+extern void POMP_Unset_lock(omp_lock_t *s);
+extern int  POMP_Test_lock(omp_lock_t *s);
+extern void POMP_Init_nest_lock(omp_nest_lock_t *s);
+extern void POMP_Destroy_nest_lock(omp_nest_lock_t *s);
+extern void POMP_Set_nest_lock(omp_nest_lock_t *s);
+extern void POMP_Unset_nest_lock(omp_nest_lock_t *s);
+extern int  POMP_Test_nest_lock(omp_nest_lock_t *s);
+#endif
+
+extern int pomp_initialized;
+extern int pomp_tracing;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.h	(revision 97)
@@ -0,0 +1,54 @@
+/**
+ * VampirTrace
+ * http://www.tu-dresden.de/zih/vampirtrace
+ *
+ * Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+ *
+ * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+ *                          Centre, Federal Republic of Germany
+ *
+ * See the file COPYING in the package base directory for details
+ **/
+
+#ifndef _VT_USER_H
+#define _VT_USER_H
+
+#ifdef __cplusplus
+#   define EXTERN extern "C" 
+#else
+#   define EXTERN extern 
+#endif
+
+#include <vt_user_count.h>
+#include <vt_user_comment.h>
+
+#ifdef VTRACE
+
+  EXTERN void VT_User_start__(char* name, char* file, int lno);
+  EXTERN void VT_User_end__(char* name);
+
+  #ifdef __cplusplus
+    class VT_Tracer {
+    public:
+      VT_Tracer(char* name, char* file, int lno) : n(name) {
+        VT_User_start__(name, file, lno);
+      }
+      ~VT_Tracer() { VT_User_end__(n); }
+    private:
+      char *n;
+    };
+    #define VT_TRACER(n) VT_Tracer VT_Trc__(n, __FILE__, __LINE__)
+  #endif
+
+  #define VT_USER_START(n) VT_User_start__(n, __FILE__, __LINE__)
+  #define VT_USER_END(n)   VT_User_end__(n)
+
+#else
+
+  #define VT_USER_START(n)
+  #define VT_USER_END(n)
+  #define VT_TRACER(n)
+
+#endif /* VTRACE */
+
+#endif /* _VT_USER_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.inc
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.inc	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user.inc	(revision 97)
@@ -0,0 +1,22 @@
+!**
+!* VampirTrace
+!* http://www.tu-dresden.de/zih/vampirtrace
+!*
+!* Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+!*
+!* Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+!*                          Centre, Federal Republic of Germany
+!*
+!* See the file COPYING in the package base directory for details
+!**
+
+#include "vt_user_count.inc"
+#include "vt_user_comment.inc"
+
+#ifdef VTRACE
+#  define VT_USER_START(n) call VT_User_start__(n, __FILE__, __LINE__)
+#  define VT_USER_END(n)   call VT_User_end__(n)
+#else
+#  define VT_USER_START(n)
+#  define VT_USER_END(n)
+#endif
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.h	(revision 97)
@@ -0,0 +1,37 @@
+/**
+ * VampirTrace
+ * http://www.tu-dresden.de/zih/vampirtrace
+ *
+ * Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+ *
+ * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+ *                          Centre, Federal Republic of Germany
+ *
+ * See the file COPYING in the package base directory for details
+ **/
+
+#ifndef _VT_USER_COMMENT_H
+#define _VT_USER_COMMENT_H
+
+#ifdef __cplusplus
+#   define EXTERN extern "C" 
+#else
+#   define EXTERN extern 
+#endif
+
+#if (defined(VTRACE)) && !(defined(VTRACE_NO_COMMENT))
+
+  EXTERN void VT_User_comment_def__(const char* comment);
+  EXTERN void VT_User_comment__(const char* comment);
+
+  #define VT_COMMENT_DEF(c) VT_User_comment_def__(c)
+  #define VT_COMMENT(c) VT_User_comment__(c)
+
+#else
+
+  #define VT_COMMENT_DEF(c)
+  #define VT_COMMENT(c)
+
+#endif /* VTRACE */
+
+#endif /* _VT_USER_COMMENT_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.inc
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.inc	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_comment.inc	(revision 97)
@@ -0,0 +1,19 @@
+!**
+!* VampirTrace
+!* http://www.tu-dresden.de/zih/vampirtrace
+!*
+!* Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+!*
+!* Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+!*                          Centre, Federal Republic of Germany
+!*
+!* See the file COPYING in the package base directory for details
+!**
+
+#if (defined(VTRACE)) && !(defined(VTRACE_NO_COMMENT))
+#  define VT_COMMENT_DEF(c) call VT_User_comment_def__(c)
+#  define VT_COMMENT(c) call VT_User_comment__(c)
+#else
+#  define VT_COMMENT_DEF(c)
+#  define VT_COMMENT(c)
+#endif
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.h
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.h	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.h	(revision 97)
@@ -0,0 +1,62 @@
+/**
+ * VampirTrace
+ * http://www.tu-dresden.de/zih/vampirtrace
+ *
+ * Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+ *
+ * Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+ *                          Centre, Federal Republic of Germany
+ *
+ * See the file COPYING in the package base directory for details
+ **/
+
+#ifndef _VT_USER_COUNT_H
+#define _VT_USER_COUNT_H
+
+#ifdef __cplusplus
+#   define EXTERN extern "C" 
+#else
+#   define EXTERN extern 
+#endif
+
+#define VT_COUNT_DEFGROUP       -1
+
+/* C/C++ types */
+#define VT_COUNT_TYPE_SIGNED     1
+#define VT_COUNT_TYPE_UNSIGNED   2
+#define VT_COUNT_TYPE_FLOAT      3
+#define VT_COUNT_TYPE_DOUBLE     4
+/* Fortran types */
+#define VT_COUNT_TYPE_INTEGER    11
+#define VT_COUNT_TYPE_INTEGER8   12
+#define VT_COUNT_TYPE_REAL       13
+
+#if (defined(VTRACE)) && !(defined(VTRACE_NO_COUNT))
+
+  EXTERN unsigned int VT_User_count_group_def__(char* gname);
+  EXTERN unsigned int VT_User_count_def__(char* cname, char* cunit, int ctype,
+                                          unsigned int gid);
+  EXTERN void VT_User_count_signed_val__(unsigned int cid, long long val);
+  EXTERN void VT_User_count_unsigned_val__(unsigned int cid, unsigned long long val);
+  EXTERN void VT_User_count_float_val__(unsigned int cid, float val);
+  EXTERN void VT_User_count_double_val__(unsigned int cid, double val);
+
+  #define VT_COUNT_GROUP_DEF(n) VT_User_count_group_def__(n)
+  #define VT_COUNT_DEF(n, u, t, gi) VT_User_count_def__(n, u, t, gi)
+  #define VT_COUNT_SIGNED_VAL(i, v) VT_User_count_signed_val__(i, v)
+  #define VT_COUNT_UNSIGNED_VAL(i, v) VT_User_count_unsigned_val__(i, v)
+  #define VT_COUNT_FLOAT_VAL(i, v) VT_User_count_float_val__(i, v)
+  #define VT_COUNT_DOUBLE_VAL(i, v) VT_User_count_double_val__(i, v)
+
+#else
+
+  #define VT_COUNT_GROUP_DEF(n) 0
+  #define VT_COUNT_DEF(n, u, t, gi) 0
+  #define VT_COUNT_SIGNED_VAL(i, v)
+  #define VT_COUNT_UNSIGNED_VAL(i, v)
+  #define VT_COUNT_FLOAT_VAL(i, v)
+  #define VT_COUNT_DOUBLE_VAL(i, v)
+
+#endif /* VTRACE */
+
+#endif /* _VT_USER_COUNT_H */
Index: proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.inc
===================================================================
--- proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.inc	(revision 97)
+++ proiecte/hpl/openmpi_compiled/include/vampirtrace/vt_user_count.inc	(revision 97)
@@ -0,0 +1,35 @@
+!**
+!* VampirTrace
+!* http://www.tu-dresden.de/zih/vampirtrace
+!*
+!* Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+!*
+!* Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+!*                          Centre, Federal Republic of Germany
+!*
+!* See the file COPYING in the package base directory for details
+!**
+
+#define VT_COUNT_DEFGROUP       -1
+
+#define VT_COUNT_TYPE_INTEGER    11
+#define VT_COUNT_TYPE_INTEGER8   12
+#define VT_COUNT_TYPE_REAL       13
+!* vvv - equal to C/C++ type
+#define VT_COUNT_TYPE_DOUBLE     4
+
+#if (defined(VTRACE)) && !(defined(VTRACE_NO_COUNT))
+#  define VT_COUNT_GROUP_DEF(n, gi) call VT_User_count_group_def__(n, gi)
+#  define VT_COUNT_DEF(n, u, t, gi, ci) call VT_User_count_def__(n, u, t, gi, ci)
+#  define VT_COUNT_INTEGER_VAL(i, v) call VT_User_count_integer_val__(i, v)
+#  define VT_COUNT_INTEGER8_VAL(i, v) call VT_User_count_integer8_val__(i, v)
+#  define VT_COUNT_REAL_VAL(i, v) call VT_User_count_real_val__(i, v)
+#  define VT_COUNT_DOUBLE_VAL(i, v) call VT_User_count_double_val__(i, v)
+#else
+#  define VT_COUNT_GROUP_DEF(n, gi)
+#  define VT_COUNT_DEF(n, u, t, gi, ci)
+#  define VT_COUNT_INTEGER_VAL(i, v)
+#  define VT_COUNT_INTEGER8_VAL(i, v)
+#  define VT_COUNT_REAL_VAL(i, v)
+#  define VT_COUNT_DOUBLE_VAL(i, v)
+#endif
Index: proiecte/hpl/openmpi_compiled/lib/libmca_common_sm.so.1
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libmca_common_sm.so.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libmca_common_sm.so.1	(revision 97)
@@ -0,0 +1,1 @@
+link libmca_common_sm.so.1.0.0
Index: proiecte/hpl/openmpi_compiled/lib/libmpi.so.0
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libmpi.so.0	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libmpi.so.0	(revision 97)
@@ -0,0 +1,1 @@
+link libmpi.so.0.0.1
Index: proiecte/hpl/openmpi_compiled/lib/libmpi_cxx.so.0
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libmpi_cxx.so.0	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libmpi_cxx.so.0	(revision 97)
@@ -0,0 +1,1 @@
+link libmpi_cxx.so.0.0.0
Index: proiecte/hpl/openmpi_compiled/lib/libopen-pal.so.0
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libopen-pal.so.0	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libopen-pal.so.0	(revision 97)
@@ -0,0 +1,1 @@
+link libopen-pal.so.0.0.0
Index: proiecte/hpl/openmpi_compiled/lib/libopen-rte.so.0
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libopen-rte.so.0	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libopen-rte.so.0	(revision 97)
@@ -0,0 +1,1 @@
+link libopen-rte.so.0.0.0
Index: proiecte/hpl/openmpi_compiled/lib/libopenmpi_malloc.so.0
===================================================================
--- proiecte/hpl/openmpi_compiled/lib/libopenmpi_malloc.so.0	(revision 97)
+++ proiecte/hpl/openmpi_compiled/lib/libopenmpi_malloc.so.0	(revision 97)
@@ -0,0 +1,1 @@
+link libopenmpi_malloc.so.0.0.0
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpiCC.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpiCC.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpiCC.1	(revision 97)
@@ -0,0 +1,1 @@
+link mpic++.1
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpic++.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpic++.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpic++.1	(revision 97)
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH mpic++ 1 "Dec 08, 2009" "1.4" "Open MPI"
+
+.
+.SH NAME
+mpic++ -- Open MPI C++ wrapper compiler
+.
+.SH SYNTAX
+mpic++ [-showme|-showme:compile|-showme:link] ...
+.
+.SH OPTIONS
+.TP
+-showme 
+Do not invoke the underlying compiler.  Instead, show the command line
+that would be executed to compile the program.  \fBNOTE:\fR If a
+non-filename argument is passed on the command line, the \fI-showme\fR
+option will \fInot\fR display any additional flags.  For example, both
+"mpic++ --showme" and "mpic++ --showme my_source.c" will show all the
+wrapper-supplied flags.  But "mpic++ -showme -v" will only show the
+underlying compiler name and "-v".
+.TP
+-showme:compile
+Do not invoke the underlying C++ compiler.  Instead, show the
+compiler flags that would be supplied to the C++ compiler.
+.TP
+-showme:link
+Do not invoke the underlying C++ compiler.  Instead, show the linker
+flags that would be supplied to the C++ compiler.
+.PP
+See the man page for your underlying compiler for other options that
+can be passed through mpic++
+.
+.
+.SH DESCRIPTION
+.PP
+Conceptually, the role of these commands is quite simple:
+transparently add relevant compiler and linker flags to the user's
+command line that are necessary to compile / link Open MPI
+programs, and then invoke the underlying compiler to actually perform
+the command.
+.
+.PP
+As such, these commands are frequently referred to as "wrapper"
+compilers because they do not actually compile or link applications
+themselves; they only add in command line flags and invoke the
+back-end compiler.
+.
+.
+.SS Background
+Open MPI is comprised of three software layers: OPAL (Open Portable
+Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
+There are wrapper compilers for each layer; each layer's wrapper only
+links in the libraries relevant for that layer.  Specifically, each
+layer provides the following wrapper compilers:
+.
+.TP 4
+OPAL
+\fIopalcc\fR and \fIopalc++\fR
+.
+.TP
+ORTE
+\fIortecc\fR and \fIortec++\fR
+.
+.TP
+OMPI
+\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
+case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
+that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
+underlying C++ compiler with the same options.  All are provided as
+compatibility with other MPI implementations.
+.
+.PP
+The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
+will be inoperative and will return an error on use if Fortran 77 /
+Fortran 90 support was not built into the MPI layer.
+.
+.
+.SS Overview
+\fImpic++\fR is a convenience wrappers for the underlying
+C++ compiler.  Translation of an Open MPI program requires the
+linkage of the Open MPI-specific libraries which may not reside in
+one of the standard search directories of ld(1).  It also often
+requires the inclusion of header files what may also not be found in a
+standard location.
+.
+.PP
+\fImpic++\fR passes its arguments to the underlying C++
+compiler along with the -I, -L and -l options required by Open MPI
+programs.
+.
+.PP
+The Open MPI Team \fIstrongly\fR encourages using the wrapper
+compilers instead of attempting to link to the Open MPI libraries
+manually.  This allows the specific implementation of Open MPI to
+change without forcing changes to linker directives in users'
+Makefiles.  Indeed, the specific set of flags and libraries used by
+the wrapper compilers depends on how Open MPI was configured and
+built; the values can change between different installations of the
+same version of Open MPI.
+.
+.PP
+Indeed, since the wrappers are simply thin shells on top of an
+underlying compiler, there are very, very few compelling reasons
+\fInot\fR to use \fImpic++\fR.  When it is not possible to use the
+wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
+options should be used to determine what flags the wrappers would have
+used.  For example:
+.
+.PP
+shell$ cc -c file1.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc -c file2.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
+.
+.
+.SH NOTES
+.PP
+It is possible to make the wrapper compilers multi-lib aware.  That
+is, the libraries and includes specified may differ based on the
+compiler flags specified (for example, with the GNU compilers on
+Linux, a different library path may be used if -m32 is seen versus
+-m64 being seen).  This is not the default behavior in a standard
+build, but can be activated (for example, in a binary package
+providing both 32 and 64 bit support).  More information can be found
+at:
+.PP
+  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
+.
+.
+.SH FILES
+.PP
+The string that the wrapper compilers insert into the command line
+before invoking the underlying compiler are stored in a text file
+created by Open MPI and installed to
+\fI$pkgdata/mpic++-wrapper-data.txt\fR, where \fI$pkgdata\fR
+is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
+installation directory of Open MPI.
+.
+.PP
+It is rarely necessary to edit this file, but it can be examined to
+gain insight into what flags the wrappers are placing on the command
+line.
+.
+.
+.SH ENVIRONMENT VARIABLES
+.PP 
+By default, the wrappers use the compilers that were selected when
+Open MPI was configured.  These compilers were either found
+automatically by Open MPI's "configure" script, or were selected by
+the user in the CC, CXX, F77, and/or FC environment variables 
+before "configure" was invoked.  Additionally, other arguments
+specific to the compiler may have been selected by configure.
+.
+.PP
+These values can be selectively overridden by either editing the text
+files containing this configuration information (see the \fBFILES\fR
+section), or by setting selected environment variables of the
+form "OMPI_value".
+.
+.PP
+Valid value names are:
+.
+.TP
+CPPFLAGS
+Flags added when invoking the preprocessor (C or C++)
+.
+.TP
+LDFLAGS
+Flags added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+LIBS
+Libraries added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+CC
+C compiler
+.
+.TP
+CFLAGS
+C compiler flags
+.
+.TP
+CXX
+C++ compiler
+.
+.TP
+CXXFLAGS
+C++ compiler flags
+.
+.
+.TP
+F77
+Fortran 77 compiler
+.
+.TP
+FFLAGS
+Fortran 77 compiler flags
+.
+.
+.TP
+FC
+Fortran 90 compiler
+.
+.TP
+FCFLAGS
+Fortran 90 compiler flags
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpicc.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpicc.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpicc.1	(revision 97)
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH mpicc 1 "Dec 08, 2009" "1.4" "Open MPI"
+
+.
+.SH NAME
+mpicc -- Open MPI C wrapper compiler
+.
+.SH SYNTAX
+mpicc [-showme|-showme:compile|-showme:link] ...
+.
+.SH OPTIONS
+.TP
+-showme 
+Do not invoke the underlying compiler.  Instead, show the command line
+that would be executed to compile the program.  \fBNOTE:\fR If a
+non-filename argument is passed on the command line, the \fI-showme\fR
+option will \fInot\fR display any additional flags.  For example, both
+"mpicc --showme" and "mpicc --showme my_source.c" will show all the
+wrapper-supplied flags.  But "mpicc -showme -v" will only show the
+underlying compiler name and "-v".
+.TP
+-showme:compile
+Do not invoke the underlying C compiler.  Instead, show the
+compiler flags that would be supplied to the C compiler.
+.TP
+-showme:link
+Do not invoke the underlying C compiler.  Instead, show the linker
+flags that would be supplied to the C compiler.
+.PP
+See the man page for your underlying compiler for other options that
+can be passed through mpicc
+.
+.
+.SH DESCRIPTION
+.PP
+Conceptually, the role of these commands is quite simple:
+transparently add relevant compiler and linker flags to the user's
+command line that are necessary to compile / link Open MPI
+programs, and then invoke the underlying compiler to actually perform
+the command.
+.
+.PP
+As such, these commands are frequently referred to as "wrapper"
+compilers because they do not actually compile or link applications
+themselves; they only add in command line flags and invoke the
+back-end compiler.
+.
+.
+.SS Background
+Open MPI is comprised of three software layers: OPAL (Open Portable
+Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
+There are wrapper compilers for each layer; each layer's wrapper only
+links in the libraries relevant for that layer.  Specifically, each
+layer provides the following wrapper compilers:
+.
+.TP 4
+OPAL
+\fIopalcc\fR and \fIopalc++\fR
+.
+.TP
+ORTE
+\fIortecc\fR and \fIortec++\fR
+.
+.TP
+OMPI
+\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
+case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
+that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
+underlying C++ compiler with the same options.  All are provided as
+compatibility with other MPI implementations.
+.
+.PP
+The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
+will be inoperative and will return an error on use if Fortran 77 /
+Fortran 90 support was not built into the MPI layer.
+.
+.
+.SS Overview
+\fImpicc\fR is a convenience wrappers for the underlying
+C compiler.  Translation of an Open MPI program requires the
+linkage of the Open MPI-specific libraries which may not reside in
+one of the standard search directories of ld(1).  It also often
+requires the inclusion of header files what may also not be found in a
+standard location.
+.
+.PP
+\fImpicc\fR passes its arguments to the underlying C
+compiler along with the -I, -L and -l options required by Open MPI
+programs.
+.
+.PP
+The Open MPI Team \fIstrongly\fR encourages using the wrapper
+compilers instead of attempting to link to the Open MPI libraries
+manually.  This allows the specific implementation of Open MPI to
+change without forcing changes to linker directives in users'
+Makefiles.  Indeed, the specific set of flags and libraries used by
+the wrapper compilers depends on how Open MPI was configured and
+built; the values can change between different installations of the
+same version of Open MPI.
+.
+.PP
+Indeed, since the wrappers are simply thin shells on top of an
+underlying compiler, there are very, very few compelling reasons
+\fInot\fR to use \fImpicc\fR.  When it is not possible to use the
+wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
+options should be used to determine what flags the wrappers would have
+used.  For example:
+.
+.PP
+shell$ cc -c file1.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc -c file2.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
+.
+.
+.SH NOTES
+.PP
+It is possible to make the wrapper compilers multi-lib aware.  That
+is, the libraries and includes specified may differ based on the
+compiler flags specified (for example, with the GNU compilers on
+Linux, a different library path may be used if -m32 is seen versus
+-m64 being seen).  This is not the default behavior in a standard
+build, but can be activated (for example, in a binary package
+providing both 32 and 64 bit support).  More information can be found
+at:
+.PP
+  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
+.
+.
+.SH FILES
+.PP
+The string that the wrapper compilers insert into the command line
+before invoking the underlying compiler are stored in a text file
+created by Open MPI and installed to
+\fI$pkgdata/mpicc-wrapper-data.txt\fR, where \fI$pkgdata\fR
+is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
+installation directory of Open MPI.
+.
+.PP
+It is rarely necessary to edit this file, but it can be examined to
+gain insight into what flags the wrappers are placing on the command
+line.
+.
+.
+.SH ENVIRONMENT VARIABLES
+.PP 
+By default, the wrappers use the compilers that were selected when
+Open MPI was configured.  These compilers were either found
+automatically by Open MPI's "configure" script, or were selected by
+the user in the CC, CXX, F77, and/or FC environment variables 
+before "configure" was invoked.  Additionally, other arguments
+specific to the compiler may have been selected by configure.
+.
+.PP
+These values can be selectively overridden by either editing the text
+files containing this configuration information (see the \fBFILES\fR
+section), or by setting selected environment variables of the
+form "OMPI_value".
+.
+.PP
+Valid value names are:
+.
+.TP
+CPPFLAGS
+Flags added when invoking the preprocessor (C or C++)
+.
+.TP
+LDFLAGS
+Flags added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+LIBS
+Libraries added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+CC
+C compiler
+.
+.TP
+CFLAGS
+C compiler flags
+.
+.TP
+CXX
+C++ compiler
+.
+.TP
+CXXFLAGS
+C++ compiler flags
+.
+.
+.TP
+F77
+Fortran 77 compiler
+.
+.TP
+FFLAGS
+Fortran 77 compiler flags
+.
+.
+.TP
+FC
+Fortran 90 compiler
+.
+.TP
+FCFLAGS
+Fortran 90 compiler flags
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpicxx.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpicxx.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpicxx.1	(revision 97)
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH mpicxx 1 "Dec 08, 2009" "1.4" "Open MPI"
+
+.
+.SH NAME
+mpicxx -- Open MPI C++ wrapper compiler
+.
+.SH SYNTAX
+mpicxx [-showme|-showme:compile|-showme:link] ...
+.
+.SH OPTIONS
+.TP
+-showme 
+Do not invoke the underlying compiler.  Instead, show the command line
+that would be executed to compile the program.  \fBNOTE:\fR If a
+non-filename argument is passed on the command line, the \fI-showme\fR
+option will \fInot\fR display any additional flags.  For example, both
+"mpicxx --showme" and "mpicxx --showme my_source.c" will show all the
+wrapper-supplied flags.  But "mpicxx -showme -v" will only show the
+underlying compiler name and "-v".
+.TP
+-showme:compile
+Do not invoke the underlying C++ compiler.  Instead, show the
+compiler flags that would be supplied to the C++ compiler.
+.TP
+-showme:link
+Do not invoke the underlying C++ compiler.  Instead, show the linker
+flags that would be supplied to the C++ compiler.
+.PP
+See the man page for your underlying compiler for other options that
+can be passed through mpicxx
+.
+.
+.SH DESCRIPTION
+.PP
+Conceptually, the role of these commands is quite simple:
+transparently add relevant compiler and linker flags to the user's
+command line that are necessary to compile / link Open MPI
+programs, and then invoke the underlying compiler to actually perform
+the command.
+.
+.PP
+As such, these commands are frequently referred to as "wrapper"
+compilers because they do not actually compile or link applications
+themselves; they only add in command line flags and invoke the
+back-end compiler.
+.
+.
+.SS Background
+Open MPI is comprised of three software layers: OPAL (Open Portable
+Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
+There are wrapper compilers for each layer; each layer's wrapper only
+links in the libraries relevant for that layer.  Specifically, each
+layer provides the following wrapper compilers:
+.
+.TP 4
+OPAL
+\fIopalcc\fR and \fIopalc++\fR
+.
+.TP
+ORTE
+\fIortecc\fR and \fIortec++\fR
+.
+.TP
+OMPI
+\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
+case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
+that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
+underlying C++ compiler with the same options.  All are provided as
+compatibility with other MPI implementations.
+.
+.PP
+The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
+will be inoperative and will return an error on use if Fortran 77 /
+Fortran 90 support was not built into the MPI layer.
+.
+.
+.SS Overview
+\fImpicxx\fR is a convenience wrappers for the underlying
+C++ compiler.  Translation of an Open MPI program requires the
+linkage of the Open MPI-specific libraries which may not reside in
+one of the standard search directories of ld(1).  It also often
+requires the inclusion of header files what may also not be found in a
+standard location.
+.
+.PP
+\fImpicxx\fR passes its arguments to the underlying C++
+compiler along with the -I, -L and -l options required by Open MPI
+programs.
+.
+.PP
+The Open MPI Team \fIstrongly\fR encourages using the wrapper
+compilers instead of attempting to link to the Open MPI libraries
+manually.  This allows the specific implementation of Open MPI to
+change without forcing changes to linker directives in users'
+Makefiles.  Indeed, the specific set of flags and libraries used by
+the wrapper compilers depends on how Open MPI was configured and
+built; the values can change between different installations of the
+same version of Open MPI.
+.
+.PP
+Indeed, since the wrappers are simply thin shells on top of an
+underlying compiler, there are very, very few compelling reasons
+\fInot\fR to use \fImpicxx\fR.  When it is not possible to use the
+wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
+options should be used to determine what flags the wrappers would have
+used.  For example:
+.
+.PP
+shell$ cc -c file1.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc -c file2.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
+.
+.
+.SH NOTES
+.PP
+It is possible to make the wrapper compilers multi-lib aware.  That
+is, the libraries and includes specified may differ based on the
+compiler flags specified (for example, with the GNU compilers on
+Linux, a different library path may be used if -m32 is seen versus
+-m64 being seen).  This is not the default behavior in a standard
+build, but can be activated (for example, in a binary package
+providing both 32 and 64 bit support).  More information can be found
+at:
+.PP
+  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
+.
+.
+.SH FILES
+.PP
+The string that the wrapper compilers insert into the command line
+before invoking the underlying compiler are stored in a text file
+created by Open MPI and installed to
+\fI$pkgdata/mpicxx-wrapper-data.txt\fR, where \fI$pkgdata\fR
+is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
+installation directory of Open MPI.
+.
+.PP
+It is rarely necessary to edit this file, but it can be examined to
+gain insight into what flags the wrappers are placing on the command
+line.
+.
+.
+.SH ENVIRONMENT VARIABLES
+.PP 
+By default, the wrappers use the compilers that were selected when
+Open MPI was configured.  These compilers were either found
+automatically by Open MPI's "configure" script, or were selected by
+the user in the CC, CXX, F77, and/or FC environment variables 
+before "configure" was invoked.  Additionally, other arguments
+specific to the compiler may have been selected by configure.
+.
+.PP
+These values can be selectively overridden by either editing the text
+files containing this configuration information (see the \fBFILES\fR
+section), or by setting selected environment variables of the
+form "OMPI_value".
+.
+.PP
+Valid value names are:
+.
+.TP
+CPPFLAGS
+Flags added when invoking the preprocessor (C or C++)
+.
+.TP
+LDFLAGS
+Flags added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+LIBS
+Libraries added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+CC
+C compiler
+.
+.TP
+CFLAGS
+C compiler flags
+.
+.TP
+CXX
+C++ compiler
+.
+.TP
+CXXFLAGS
+C++ compiler flags
+.
+.
+.TP
+F77
+Fortran 77 compiler
+.
+.TP
+FFLAGS
+Fortran 77 compiler flags
+.
+.
+.TP
+FC
+Fortran 90 compiler
+.
+.TP
+FCFLAGS
+Fortran 90 compiler flags
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpiexec.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpiexec.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpiexec.1	(revision 97)
@@ -0,0 +1,1193 @@
+.\" Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's orterun command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH MPIRUN 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+orterun, mpirun, mpiexec \- Execute serial and parallel jobs in Open MPI.
+
+.B Note:
+\fImpirun\fP, \fImpiexec\fP, and \fIorterun\fP are all synonyms for each
+other.  Using any of the names will produce the same behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.PP
+Single Process Multiple Data (SPMD) Model:
+
+.B mpirun
+[ options ] 
+.B <program>
+[ <args> ]
+.P
+
+Multiple Instruction Multiple Data (MIMD) Model:
+
+.B mpirun
+[ global_options ]
+       [ local_options1 ]
+.B <program1>
+[ <args1> ] :
+       [ local_options2 ]
+.B <program2>
+[ <args2> ] : 
+       ... : 
+       [ local_optionsN ]
+.B <programN>
+[ <argsN> ]
+.P
+
+Note that in both models, invoking \fImpirun\fP via an absolute path
+name is equivalent to specifying the \fI--prefix\fP option with a
+\fI<dir>\fR value equivalent to the directory where \fImpirun\fR
+resides, minus its last subdirectory.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+
+.
+.\" **************************
+.\"    Quick Summary Section
+.\" **************************
+.SH QUICK SUMMARY
+.
+If you are simply looking for how to run an MPI application, you
+probably want to use a command line of the following form:
+
+    \fB%\fP mpirun [ -np X ] [ --hostfile <filename> ]  <program>
+
+This will run X copies of \fI<program>\fR in your current run-time
+environment (if running under a supported resource manager, Open MPI's
+\fImpirun\fR will usually automatically use the corresponding resource manager
+process starter, as opposed to, for example, \fIrsh\fR or \fIssh\fR,
+which require the use of a hostfile, or will default to running all X
+copies on the localhost), scheduling (by default) in a round-robin fashion by
+CPU slot.  See the rest of this page for more details.
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.
+.I mpirun
+will send the name of the directory where it was invoked on the local
+node to each of the remote nodes, and attempt to change to that
+directory.  See the "Current Working Directory" section below for further
+details.
+.\"
+.\" Start options listing
+.\"    Indent 10 characters from start of first column to start of second column
+.TP 10
+.B <program>
+The program executable. This is identified as the first non-recognized argument
+to mpirun.
+.
+.
+.TP
+.B <args>
+Pass these run-time arguments to every new process.  These must always
+be the last arguments to \fImpirun\fP. If an app context file is used,
+\fI<args>\fP will be ignored.
+.
+.
+.TP
+.B -h\fR,\fP --help
+Display help for this command
+.
+.
+.TP
+.B -q\fR,\fP --quiet
+Suppress informative messages from orterun during application execution.
+.
+.
+.TP
+.B -v\fR,\fP --verbose
+Be verbose
+.
+.
+.TP
+.B -V\fR,\fP --version
+Print version number.  If no other arguments are given, this will also
+cause orterun to exit.
+.
+.
+.
+.
+.P
+To specify which hosts (nodes) of the cluster to run on:
+.
+.
+.TP
+.B -H\fR,\fP -host\fR,\fP --host \fR<host1,host2,...,hostN>\fP
+List of hosts on which to invoke processes.
+.
+.
+.TP
+.B
+-hostfile\fR,\fP --hostfile \fR<hostfile>\fP
+Provide a hostfile to use. 
+.\" JJH - Should have man page for how to format a hostfile properly.
+.
+.
+.TP
+.B -machinefile\fR,\fP --machinefile \fR<machinefile>\fP
+Synonym for \fI-hostfile\fP.
+.
+.
+.
+.
+.P
+To specify the number of processes to launch:
+.
+.
+.TP
+.B -c\fR,\fP -n\fR,\fP --n\fR,\fP -np \fR<#>\fP
+Run this many copies of the program on the given nodes.  This option
+indicates that the specified file is an executable program and not an
+application context. If no value is provided for the number of copies to
+execute (i.e., neither the "-np" nor its synonyms are provided on the command
+line), Open MPI will automatically execute a copy of the program on
+each process slot (see below for description of a "process slot"). This
+feature, however, can only be used in the SPMD model and will return an
+error (without beginning execution of the application) otherwise. 
+.
+.
+.TP
+.B -npersocket\fR,\fP --npersocket <#persocket>
+On each node, launch this many processes times the number of processor
+sockets on the node.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option.
+.
+.
+.TP
+.B -npernode\fR,\fP --npernode <#pernode>
+On each node, launch this many processes.
+.
+.
+.TP
+.B -pernode\fR,\fP --pernode
+On each node, launch one process -- equivalent to \fI-npernode\fP 1.
+.
+.
+.
+.
+.P
+To map processes to nodes:
+.
+.
+.TP
+.B -loadbalance\fR,\fP --loadbalance
+Uniform distribution of ranks across all nodes. See more detailed description below.
+.
+.TP
+.B -nolocal\fR,\fP --nolocal
+Do not run any copies of the launched application on the same node as
+orterun is running.  This option will override listing the localhost
+with \fB--host\fR or any other host-specifying mechanism.
+.
+.TP
+.B -nooversubscribe\fR,\fP --nooversubscribe
+Do not oversubscribe any nodes; error (without starting any processes)
+if the requested number of processes would cause oversubscription.
+This option implicitly sets "max_slots" equal to the "slots" value for
+each node.
+.
+.TP
+.B -bynode\fR,\fP --bynode
+Launch processes one per node, cycling by node in a round-robin
+fashion.  This spreads processes evenly among nodes and assigns
+ranks in a round-robin, "by node" manner.
+.
+.
+.
+.
+.P
+For process binding:
+.
+.TP
+.B -bycore\fR,\fP --bycore
+Associate processes with successive cores
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -bysocket\fR,\fP --bysocket
+Associate processes with successive processor sockets
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-proc\fR,\fP --cpus-per-proc <#perproc>
+Use the number of cores per process
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-rank\fR,\fP --cpus-per-rank <#perrank>
+Alias for \fI-cpus-per-proc\fP.
+.
+.TP
+.B -bind-to-core\fR,\fP --bind-to-core
+Bind processes to cores.
+.
+.TP
+.B -bind-to-socket\fR,\fP --bind-to-socket
+Bind processes to processor sockets.
+.
+.TP
+.B -bind-to-none\fR,\fP --bind-to-none
+Do not bind processes.  (Default.)
+.
+.TP
+.B -report-bindings\fR,\fP --report-bindings
+Report any bindings for launched processes.
+.
+.TP
+.B -slot-list\fR,\fP --slot-list <slots>
+List of processor IDs to be used for binding MPI processes. The specified bindings will
+be applied to all MPI processes. See explanation below for syntax.
+.
+.
+.
+.
+.P
+For rankfiles:
+.
+.
+.TP
+.B -rf\fR,\fP --rankfile <rankfile>
+Provide a rankfile file.
+.
+.
+.
+.
+.P
+To manage standard I/O:
+.
+.
+.TP
+.B -output-filename\fR,\fP --output-filename \fR<filename>\fP
+Redirect the stdout, stderr, and stddiag of all ranks to a rank-unique version of
+the specified filename. Any directories in the filename will automatically be created.
+Each output file will consist of filename.rank, where the rank will be left-filled with
+zero's for correct ordering in listings.
+.
+.
+.TP
+.B -stdin\fR,\fP --stdin <rank>
+The MPI rank that is to receive stdin. The default is to forward stdin to rank=0, but this
+option can be used to forward stdin to any rank. It is also acceptable to specify \fInone\fP,
+indicating that no ranks are to receive stdin.
+.
+.
+.TP
+.B -tag-output\fR,\fP --tag-output
+Tag each line of output to stdout, stderr, and stddiag with \fB[jobid, rank]<stdxxx>\fP indicating the process jobid
+and rank that generated the output, and the channel which generated it.
+.
+.
+.TP
+.B -timestamp-output\fR,\fP --timestamp-output
+Timestamp each line of output to stdout, stderr, and stddiag.
+.
+.
+.TP
+.B -xml\fR,\fP --xml
+Provide all output to stdout, stderr, and stddiag in an xml format.
+.
+.
+.TP
+.B -xterm\fR,\fP --xterm \fR<ranks>\fP
+Display the specified ranks in separate xterm windows. The ranks are specified
+as a comma-separated list of ranges, with a -1 indicating all. A separate
+window will be created for each specified rank.
+.B Note:
+In some environments, xterm may require that the executable be in the user's
+path, or be specified in absolute or relative terms. Thus, it may be necessary
+to specify a local executable as "./foo" instead of just "foo". If xterm fails to
+find the executable, mpirun will hang, but still respond correctly to a ctrl-c.
+If this happens, please check that the executable is being specified correctly
+and try again.
+.
+.
+.
+.
+.P
+To manage files and runtime environment:
+.
+.
+.TP
+.B -path\fR,\fP --path \fR<path>\fP
+<path> that will be used when attempting to locate the requested
+executables.  This is used prior to using the local PATH setting.
+.
+.
+.TP
+.B --prefix \fR<dir>\fP
+Prefix directory that will be used to set the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote node before invoking Open MPI or
+the target process.  See the "Remote Execution" section, below.
+.
+.
+.TP
+.B --preload-binary
+Copy the specified executable(s) to remote machines prior to starting remote processes. The
+executables will be copied to the Open MPI session directory and will be deleted upon
+completion of the job.
+.
+.
+.TP
+.B --preload-files <files>
+Preload the comma separated list of files to the current working directory of the remote
+machines where processes will be launched prior to starting those processes.
+.
+.
+.TP
+.B --preload-files-dest-dir <path>
+The destination directory to be used for preload-files, if other than the current working
+directory. By default, the absolute and relative paths provided by --preload-files are used.
+.
+.
+.TP
+.B --tmpdir \fR<dir>\fP
+Set the root for the session directory tree for mpirun only.
+.
+.
+.TP
+.B -wd \fR<dir>\fP
+Synonym for \fI-wdir\fP.
+.
+.
+.TP
+.B -wdir \fR<dir>\fP
+Change to the directory <dir> before the user's program executes.
+See the "Current Working Directory" section for notes on relative paths.
+.B Note:
+If the \fI-wdir\fP option appears both on the command line and in an
+application context, the context will take precedence over the command
+line.
+.
+.
+.TP
+.B -x \fR<env>\fP
+Export the specified environment variables to the remote nodes before
+executing the program.  Only one environment variable can be specified
+per \fI-x\fP option.  Existing environment variables can be specified
+or new variable names specified with corresponding values.  For
+example:
+    \fB%\fP mpirun -x DISPLAY -x OFILE=/tmp/out ...
+
+The parser for the \fI-x\fP option is not very sophisticated; it does
+not even understand quoted values.  Users are advised to set variables
+in the environment, and then use \fI-x\fP to export (not define) them.
+.
+.
+.
+.
+.P
+Setting MCA parameters:
+.
+.
+.TP
+.B -gmca\fR,\fP --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca\fR,\fP --mca <key> <value>
+Send arguments to various MCA modules.  See the "MCA" section, below.
+.
+.
+.
+.
+.P
+For debugging:
+.
+.
+.TP
+.B -debug\fR,\fP --debug
+Invoke the user-level debugger indicated by the \fIorte_base_user_debugger\fP
+MCA parameter.
+.
+.
+.TP
+.B -debugger\fR,\fP --debugger
+Sequence of debuggers to search for when \fI--debug\fP is used (i.e.
+a synonym for \fIorte_base_user_debugger\fP MCA parameter).
+.
+.
+.TP
+.B -tv\fR,\fP --tv
+Launch processes under the TotalView debugger.
+Deprecated backwards compatibility flag. Synonym for \fI--debug\fP.
+.
+.
+.
+.
+.P
+There are also other options:
+.
+.
+.TP
+.B -aborted\fR,\fP --aborted \fR<#>\fP
+Set the maximum number of aborted processes to display.
+.
+.
+.TP
+.B --app \fR<appfile>\fP
+Provide an appfile, ignoring all other command line options.
+.
+.
+.TP
+.B -cf\fR,\fP --cartofile \fR<cartofile>\fP
+Provide a cartography file.
+.
+.
+.TP
+.B --hetero
+Indicates that multiple app_contexts are being provided that are a mix of 32/64-bit binaries.
+.
+.
+.TP
+.B -leave-session-attached\fR,\fP --leave-session-attached
+Do not detach OmpiRTE daemons used by this application. This allows error messages from the daemons
+as well as the underlying environment (e.g., when failing to launch a daemon) to be output.
+.
+.
+.TP
+.B -ompi-server\fR,\fP --ompi-server <uri or file>
+Specify the URI of the Open MPI server, or the name of the file (specified as file:filename) that
+contains that info. The Open MPI server is used to support multi-application data exchange via
+the MPI-2 MPI_Publish_name and MPI_Lookup_name functions.
+.
+.
+.TP
+.B -wait-for-server\fR,\fP --wait-for-server
+Pause mpirun before launching the job until ompi-server is detected. This
+is useful in scripts where ompi-server may be started in the background, followed immediately by
+an \fImpirun\fP command that wishes to connect to it. Mpirun will pause until either the specified
+ompi-server is contacted or the server-wait-time is exceeded.
+.
+.
+.TP
+.B -server-wait-time\fR,\fP --server-wait-time <secs>
+The max amount of time (in seconds) mpirun should wait for the ompi-server to start. The default
+is 10 seconds.
+.
+.
+.
+.
+.P
+The following options are useful for developers; they are not generally
+useful to most ORTE and/or MPI users:
+.
+.TP
+.B -d\fR,\fP --debug-devel
+Enable debugging of the OmpiRTE (the run-time layer in Open MPI).
+This is not generally useful for most users.
+.
+.
+.TP
+.B --debug-daemons
+Enable debugging of any OmpiRTE daemons used by this application.
+.
+.
+.TP
+.B --debug-daemons-file
+Enable debugging of any OmpiRTE daemons used by this application, storing
+output in files.
+.
+.
+.TP
+.B -launch-agent\fR,\fP --launch-agent
+Name of the executable that is to be used to start processes on the remote nodes. The default
+is "orted". This option can be used to test new daemon concepts, or to pass options back to the
+daemons without having mpirun itself see them. For example, specifying a launch agent of
+\fRorted -mca odls_base_verbose 5\fR allows the developer to ask the orted for debugging output
+without clutter from mpirun itself.
+.
+.
+.TP
+.B --noprefix
+Disable the automatic --prefix behavior
+.
+.
+.P
+There may be other options listed with \fImpirun --help\fP.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+One invocation of \fImpirun\fP starts an MPI application running under Open
+MPI. If the application is single process multiple data (SPMD), the application
+can be specified on the \fImpirun\fP command line.
+
+If the application is multiple instruction multiple data (MIMD), comprising of
+multiple programs, the set of programs and argument can be specified in one of
+two ways: Extended Command Line Arguments, and Application Context.
+.PP
+An application context describes the MIMD program set including all arguments
+in a separate file.
+.\"See appcontext(5) for a description of the application context syntax.
+This file essentially contains multiple \fImpirun\fP command lines, less the
+command name itself.  The ability to specify different options for different
+instantiations of a program is another reason to use an application context.
+.PP
+Extended command line arguments allow for the description of the application
+layout on the command line using colons (\fI:\fP) to separate the specification
+of programs and arguments. Some options are globally set across all specified
+programs (e.g. --hostfile), while others are specific to a single program
+(e.g. -np).
+.
+.
+.
+.SS Specifying Host Nodes
+.
+Host nodes can be identified on the \fImpirun\fP command line with the \fI-host\fP
+option or in a hostfile.
+.
+.PP
+For example,
+.
+.TP 4
+mpirun -H aa,aa,bb ./a.out
+launches two processes on node aa and one on bb.
+.
+.PP
+Or, consider the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=2
+   bb slots=2
+   cc slots=2
+
+.
+.PP
+Here, we list both the host names (aa, bb, and cc) but also how many "slots"
+there are for each.  Slots indicate how many processes can potentially execute
+on a node.  For best performance, the number of slots may be chosen to be the
+number of cores on the node or the number of processor sockets.  If the hostfile
+does not provide slots information, a default of 1 is assumed.
+When running under resource managers (e.g., SLURM, Torque, etc.),
+Open MPI will obtain both the hostnames and the number of slots directly
+from the resource manger.
+.
+.PP
+.
+.TP 4
+mpirun -hostfile myhostfile ./a.out
+will launch two processes on each of the three nodes.
+.
+.TP 4
+mpirun -hostfile myhostfile -host aa ./a.out
+will launch two processes, both on node aa.
+.
+.TP 4
+mpirun -hostfile myhostfile -host dd ./a.out
+will find no hosts to run on and abort with an error.
+That is, the specified host dd is not in the specified hostfile.
+.
+.SS Specifying Number of Processes
+.
+As we have just seen, the number of processes to run can be set using the
+hostfile.  Other mechanisms exist.
+.
+.PP
+The number of processes launched can be specified as a multiple of the
+number of nodes or processor sockets available.  For example,
+.
+.TP 4
+mpirun -H aa,bb -npersocket 2 ./a.out
+launches processes 0-3 on node aa and process 4-7 on node bb,
+where aa and bb are both dual-socket nodes.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option,
+which is discussed in a later section.
+.
+.TP 4
+mpirun -H aa,bb -npernode 2 ./a.out
+launches processes 0-1 on node aa and processes 2-3 on node bb.
+.
+.TP 4
+mpirun -H aa,bb -npernode 1 ./a.out
+launches one process per host node.
+.
+.TP 4
+mpirun -H aa,bb -pernode ./a.out
+is the same as \fI-npernode\fP 1.
+.
+.
+.PP
+Another alternative is to specify the number of processes with the
+\fI-np\fP option.  Consider now the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=4
+   bb slots=4
+   cc slots=4
+
+.
+.PP
+Now,
+.
+.TP 4
+mpirun -hostfile myhostfile -np 6 ./a.out
+will launch ranks 0-3 on node aa and ranks 4-5 on node bb.  The remaining
+slots in the hostfile will not be used since the \fI-np\fP option indicated
+that only 6 processes should be launched.
+.
+.SS Mapping Processes to Nodes
+.
+The examples above illustrate the default mapping of process ranks
+to nodes.  This mapping can also be controlled with various
+\fImpirun\fP options.  Here, we consider the same hostfile as
+above with \fI-np\fP 6 again:
+.
+
+                          node aa      node bb      node cc
+
+  mpirun                  0 1 2 3      4 5
+
+  mpirun -loadbalance     0 1          2 3          4 5
+
+  mpirun -bynode          0 3          1 4          2 5
+
+  mpirun -nolocal                      0 1 2 3      4 5
+.
+.PP
+The \fI-loadbalance\fP option tries to spread processes out fairly among the
+nodes.
+.
+.PP
+The \fI-bynode\fP option does likewise but numbers the processes in "by node"
+in a round-robin fashion.
+.
+.PP
+The \fI-nolocal\fP option prevents any processes from being mapped onto the
+local host (in this case node aa).  While \fImpirun\fP typically consumes
+few system resources, \fI-nolocal\fP can be helpful for launching very
+large jobs where \fImpirun\fP may actually need to use noticable amounts
+of memory and/or processing time.
+.
+.PP
+Just as \fI-np\fP can specify fewer processes than there are slots, it can
+also oversubscribe the slots.  For example, with the same hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+will launch processes 0-3 on node aa, 4-7 on bb, and 8-11 on cc.  It will
+then add the remaining two processes to whichever nodes it chooses.
+.
+.PP
+One can also specify limits to oversubscription.  For example, with the same
+hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
+will produce an error since \fI-nooversubscribe\fP prevents oversubscription.
+.
+.PP
+Limits to oversubscription can also be specified in the hostfile itself:
+.
+ % cat myhostfile
+ aa slots=4 max_slots=4
+ bb         max_slots=4
+ cc slots=4
+.
+.PP
+The \fImax_slots\fP field specifies such a limit.  When it does, the
+\fIslots\fP value defaults to the limit.  Now:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+causes the first 12 processes to be launched as before, but the remaining
+two processes will be forced onto node cc.  The other two nodes are
+protected by the hostfile against oversubscription by this job.
+.
+.PP
+Using the \fI--nooversubscribe\fR option can be helpful since Open MPI
+currently does not get "max_slots" values from the resource manager.
+.
+.PP
+Of course, \fI-np\fP can also be used with the \fI-H\fP or \fI-host\fP
+option.  For example,
+.
+.TP 4
+mpirun -H aa,bb -np 8 ./a.out
+launches 8 processes.  Since only two hosts are specified, after the first
+two processes are mapped, one to aa and one to bb, the remaining processes
+oversubscribe the specified hosts.
+.
+.PP
+And here is a MIMD example:
+.
+.TP 4
+mpirun -H aa -np 1 hostname : -H bb,cc -np 2 uptime
+will launch process 0 running \fIhostname\fP on node aa and processes 1 and 2
+each running \fIuptime\fP on nodes bb and cc, respectively.
+.
+.SS Process Binding
+.
+Processes may be bound to specific resources on a node.  This can
+improve performance if the operating system is placing processes
+suboptimally.  For example, it might oversubscribe some multi-core
+processor sockets, leaving other sockets idle;  this can lead
+processes to contend unnecessarily for common resources.  Or, it
+might spread processes out too widely;  this can be suboptimal if
+application performance is sensitive to interprocess communication
+costs.  Binding can also keep the operating system from migrating
+processes excessively, regardless of how optimally those processes
+were placed to begin with.
+.
+.PP
+To bind processes, one must first associate them with the resources
+on which they should run.  For example, the \fI-bycore\fP option
+associates the processes on a node with successive cores.  Or,
+\fI-bysocket\fP associates the processes with successive processor sockets,
+cycling through the sockets in a round-robin fashion if necessary.
+And \fI-cpus-per-proc\fP indicates how many cores to bind per process.
+.
+.PP
+But, such association is meaningless unless the processes are actually
+bound to those resources.  The binding option specifies the granularity
+of binding -- say, with \fI-bind-to-core\fP or \fI-bind-to-socket\fP.
+One can also turn binding off with \fI-bind-to-none\fP, which is
+typically the default.
+.
+.PP
+Finally, \fI-report-bindings\fP can be used to report bindings.
+.
+.PP
+As an example, consider a node with two processor sockets, each comprising
+four cores.  We run \fImpirun\fP with \fI-np 4 -report-bindings\fP and
+the following additional options:
+.
+
+ % mpirun ... -bycore -bind-to-core
+ [...] ... binding child [...,0] to cpus 0001
+ [...] ... binding child [...,1] to cpus 0002
+ [...] ... binding child [...,2] to cpus 0004
+ [...] ... binding child [...,3] to cpus 0008
+
+ % mpirun ... -bysocket -bind-to-socket
+ [...] ... binding child [...,0] to socket 0 cpus 000f
+ [...] ... binding child [...,1] to socket 1 cpus 00f0
+ [...] ... binding child [...,2] to socket 0 cpus 000f
+ [...] ... binding child [...,3] to socket 1 cpus 00f0
+
+ % mpirun ... -cpus-per-proc 2 -bind-to-core
+ [...] ... binding child [...,0] to cpus 0003
+ [...] ... binding child [...,1] to cpus 000c
+ [...] ... binding child [...,2] to cpus 0030
+ [...] ... binding child [...,3] to cpus 00c0
+
+ % mpirun ... -bind-to-none
+.
+.PP
+Here, \fI-report-bindings\fP shows the binding of each process as a mask.
+In the first case, the processes bind to successive cores as indicated by
+the masks 0001, 0002, 0004, and 0008.  In the second case, processes bind
+to all cores on successive sockets as indicated by the masks 000f and 00f0.
+The processes cycle through the processor sockets in a round-robin fashion
+as many times as are needed.  In the third case, the masks show us that
+2 cores have been bind per process.  In the fourth case, binding is
+turned off and no bindings are reported.
+.
+.PP
+Open MPI's support for process binding depends on the underlying
+operating system.  Therefore, processing binding may not be available
+on every system.
+.
+.PP
+Process binding can also be set with MCA parameters.
+Their usage is less convenient than that of \fImpirun\fP options.
+On the other hand, MCA parameters can be set not only on the \fImpirun\fP
+command line, but alternatively in a system or user mca-params.conf file
+or as environment variables, as described in the MCA section below.
+The correspondences are:
+.
+
+  mpirun option          MCA parameter key           value
+
+  -bycore                rmaps_base_schedule_policy  core
+  -bysocket              rmaps_base_schedule_policy  socket
+  -bind-to-core          orte_process_binding        core
+  -bind-to-socket        orte_process_binding        socket
+  -bind-to-none          orte_process_binding        none
+.
+.PP
+The \fIorte_process_binding\fP value can also take on the
+\fI:if-avail\fP attribute.  This attribute means that processes
+will be bound only if this is supported on the underlying
+operating system.  Without the attribute, if there is no
+such support, the binding request results in an error.
+For example, you could have
+.
+
+  % cat $HOME/.openmpi/mca-params.conf
+  rmaps_base_schedule_policy = socket
+  orte_process_binding       = socket:if-avail
+.
+.
+.SS Rankfiles
+.
+Rankfiles provide a means for specifying detailed information about
+how process ranks should be mapped to nodes and how they should be bound.
+Consider the following:
+.
+
+    cat myrankfile
+    rank 0=aa slot=1:0-2
+    rank 1=bb slot=0:0,1
+    rank 2=cc slot=1-2
+    mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out
+.
+So that
+
+  Rank 0 runs on node aa, bound to socket 1, cores 0-2.
+  Rank 1 runs on node bb, bound to socket 0, cores 0 and 1.
+  Rank 2 runs on node cc, bound to cores 1 and 2.
+. 
+.
+.SS Application Context or Executable Program?
+.
+To distinguish the two different forms, \fImpirun\fP
+looks on the command line for \fI--app\fP option.  If
+it is specified, then the file named on the command line is
+assumed to be an application context.  If it is not
+specified, then the file is assumed to be an executable program.
+.
+.
+.
+.SS Locating Files
+.
+If no relative or absolute path is specified for a file, Open
+MPI will first look for files by searching the directories specified
+by the \fI--path\fP option.  If there is no \fI--path\fP option set or
+if the file is not found at the \fI--path\fP location, then Open MPI
+will search the user's PATH environment variable as defined on the
+source node(s).
+.PP
+If a relative directory is specified, it must be relative to the initial
+working directory determined by the specific starter used. For example when
+using the rsh or ssh starters, the initial directory is $HOME by default. Other
+starters may set the initial directory to the current working directory from
+the invocation of \fImpirun\fP. 
+.
+.
+.
+.SS Current Working Directory
+.
+The \fI\-wdir\fP mpirun option (and its synonym, \fI\-wd\fP) allows
+the user to change to an arbitrary directory before the program is
+invoked.  It can also be used in application context files to specify
+working directories on specific nodes and/or for specific
+applications.
+.PP
+If the \fI\-wdir\fP option appears both in a context file and on the
+command line, the context file directory will override the command
+line value.
+.PP
+If the \fI-wdir\fP option is specified, Open MPI will attempt to
+change to the specified directory on all of the remote nodes. If this
+fails, \fImpirun\fP will abort.
+.PP
+If the \fI-wdir\fP option is \fBnot\fP specified, Open MPI will send
+the directory name where \fImpirun\fP was invoked to each of the
+remote nodes. The remote nodes will try to change to that
+directory. If they are unable (e.g., if the directory does not exit on
+that node), then Open MPI will use the default directory determined by
+the starter.
+.PP
+All directory changing occurs before the user's program is invoked; it
+does not wait until \fIMPI_INIT\fP is called.  
+.
+.
+.
+.SS Standard I/O
+.
+Open MPI directs UNIX standard input to /dev/null on all processes
+except the MPI_COMM_WORLD rank 0 process. The MPI_COMM_WORLD rank 0 process
+inherits standard input from \fImpirun\fP.
+.B Note:
+The node that invoked \fImpirun\fP need not be the same as the node where the
+MPI_COMM_WORLD rank 0 process resides. Open MPI handles the redirection of
+\fImpirun\fP's standard input to the rank 0 process.
+.PP
+Open MPI directs UNIX standard output and error from remote nodes to the node
+that invoked \fImpirun\fP and prints it on the standard output/error of
+\fImpirun\fP.
+Local processes inherit the standard output/error of \fImpirun\fP and transfer
+to it directly.
+.PP
+Thus it is possible to redirect standard I/O for Open MPI applications by
+using the typical shell redirection procedure on \fImpirun\fP.
+
+      \fB%\fP mpirun -np 2 my_app < my_input > my_output
+
+Note that in this example \fIonly\fP the MPI_COMM_WORLD rank 0 process will
+receive the stream from \fImy_input\fP on stdin.  The stdin on all the other
+nodes will be tied to /dev/null.  However, the stdout from all nodes will
+be collected into the \fImy_output\fP file. 
+.
+.
+.
+.SS Signal Propagation
+.
+When orterun receives a SIGTERM and SIGINT, it will attempt to kill
+the entire job by sending all processes in the job a SIGTERM, waiting
+a small number of seconds, then sending all processes in the job a
+SIGKILL.
+.
+.PP
+SIGUSR1 and SIGUSR2 signals received by orterun are propagated to
+all processes in the job.
+.
+.PP
+One can turn on forwarding of SIGSTOP and SIGCONT to the program executed
+by mpirun by setting the MCA parameter orte_forward_job_control to 1.
+A SIGTSTOP signal to mpirun will then cause a SIGSTOP signal to be sent
+to all of the programs started by mpirun and likewise a SIGCONT signal
+to mpirun will cause a SIGCONT sent.
+.
+.PP
+Other signals are not currently propagated
+by orterun.
+.
+.
+.SS Process Termination / Signal Handling
+.
+During the run of an MPI application, if any rank dies abnormally
+(either exiting before invoking \fIMPI_FINALIZE\fP, or dying as the result of a
+signal), \fImpirun\fP will print out an error message and kill the rest of the
+MPI application.
+.PP
+User signal handlers should probably avoid trying to cleanup MPI state
+(Open MPI is, currently, neither thread-safe nor async-signal-safe).
+For example, if a segmentation fault occurs in \fIMPI_SEND\fP (perhaps because
+a bad buffer was passed in) and a user signal handler is invoked, if this user
+handler attempts to invoke \fIMPI_FINALIZE\fP, Bad Things could happen since
+Open MPI was already "in" MPI when the error occurred.  Since \fImpirun\fP
+will notice that the process died due to a signal, it is probably not
+necessary (and safest) for the user to only clean up non-MPI state.
+.
+.
+.
+.SS Process Environment
+.
+Processes in the MPI application inherit their environment from the
+Open RTE daemon upon the node on which they are running.  The
+environment is typically inherited from the user's shell.  On remote
+nodes, the exact environment is determined by the boot MCA module
+used.  The \fIrsh\fR launch module, for example, uses either
+\fIrsh\fR/\fIssh\fR to launch the Open RTE daemon on remote nodes, and
+typically executes one or more of the user's shell-setup files before
+launching the Open RTE daemon.  When running dynamically linked
+applications which require the \fILD_LIBRARY_PATH\fR environment
+variable to be set, care must be taken to ensure that it is correctly
+set when booting Open MPI.
+.PP
+See the "Remote Execution" section for more details.
+.
+.
+.SS Remote Execution
+.
+Open MPI requires that the \fIPATH\fR environment variable be set to
+find executables on remote nodes (this is typically only necessary in
+\fIrsh\fR- or \fIssh\fR-based environments -- batch/scheduled
+environments typically copy the current environment to the execution
+of remote jobs, so if the current environment has \fIPATH\fR and/or
+\fILD_LIBRARY_PATH\fR set properly, the remote nodes will also have it
+set properly).  If Open MPI was compiled with shared library support,
+it may also be necessary to have the \fILD_LIBRARY_PATH\fR environment
+variable set on remote nodes as well (especially to find the shared
+libraries required to run user MPI applications).
+.PP
+However, it is not always desirable or possible to edit shell
+startup files to set \fIPATH\fR and/or \fILD_LIBRARY_PATH\fR.  The
+\fI--prefix\fR option is provided for some simple configurations where
+this is not possible.
+.PP
+The \fI--prefix\fR option takes a single argument: the base directory
+on the remote node where Open MPI is installed.  Open MPI will use
+this directory to set the remote \fIPATH\fR and \fILD_LIBRARY_PATH\fR
+before executing any Open MPI or user applications.  This allows
+running Open MPI jobs without having pre-configured the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote nodes.
+.PP
+Open MPI adds the basename of the current
+node's "bindir" (the directory where Open MPI's executables are
+installed) to the prefix and uses that to set the \fIPATH\fR on the
+remote node.  Similarly, Open MPI adds the basename of the current
+node's "libdir" (the directory where Open MPI's libraries are
+installed) to the prefix and uses that to set the
+\fILD_LIBRARY_PATH\fR on the remote node.  For example:
+.TP 15
+Local bindir:
+/local/node/directory/bin
+.TP
+Local libdir:
+/local/node/directory/lib64
+.PP
+If the following command line is used:
+
+    \fB%\fP mpirun --prefix /remote/node/directory
+
+Open MPI will add "/remote/node/directory/bin" to the \fIPATH\fR
+and "/remote/node/directory/lib64" to the \fLD_LIBRARY_PATH\fR on the
+remote node before attempting to execute anything.
+.PP
+Note that \fI--prefix\fR can be set on a per-context basis, allowing
+for different values for different nodes.
+.PP
+The \fI--prefix\fR option is not sufficient if the installation paths
+on the remote node are different than the local node (e.g., if "/lib"
+is used on the local node, but "/lib64" is used on the remote node),
+or if the installation paths are something other than a subdirectory
+under a common prefix.  
+.PP
+Note that executing \fImpirun\fR via an absolute pathname is
+equivalent to specifying \fI--prefix\fR without the last subdirectory
+in the absolute pathname to \fImpirun\fR.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+.
+.
+.
+.SS Exported Environment Variables
+.
+All environment variables that are named in the form OMPI_* will automatically
+be exported to new processes on the local and remote nodes.
+The \fI\-x\fP option to \fImpirun\fP can be used to export specific environment
+variables to the new processes.  While the syntax of the \fI\-x\fP
+option allows the definition of new variables, note that the parser
+for this option is currently not very sophisticated - it does not even
+understand quoted values.  Users are advised to set variables in the
+environment and use \fI\-x\fP to export them; not to define them.
+.
+.
+.
+.SS Setting MCA Parameters
+.
+The \fI-mca\fP switch allows the passing of parameters to various MCA
+(Modular Component Architecture) modules.
+.\" Open MPI's MCA modules are described in detail in ompimca(7).
+MCA modules have direct impact on MPI programs because they allow tunable
+parameters to be set at run time (such as which BTL communication device driver
+to use, what parameters to pass to that BTL, etc.).
+.PP
+The \fI-mca\fP switch takes two arguments: \fI<key>\fP and \fI<value>\fP.
+The \fI<key>\fP argument generally specifies which MCA module will receive the value.
+For example, the \fI<key>\fP "btl" is used to select which BTL to be used for
+transporting MPI messages.  The \fI<value>\fP argument is the value that is
+passed.
+For example: 
+.
+.TP 4
+mpirun -mca btl tcp,self -np 1 foo
+Tells Open MPI to use the "tcp" and "self" BTLs, and to run a single copy of
+"foo" an allocated node.
+.
+.TP
+mpirun -mca btl self -np 1 foo
+Tells Open MPI to use the "self" BTL, and to run a single copy of "foo" an
+allocated node.
+.\" And so on.  Open MPI's BTL MCA modules are described in ompimca_btl(7).
+.PP
+The \fI-mca\fP switch can be used multiple times to specify different
+\fI<key>\fP and/or \fI<value>\fP arguments.  If the same \fI<key>\fP is
+specified more than once, the \fI<value>\fPs are concatenated with a comma
+(",") separating them.
+.PP
+Note that the \fI-mca\fP switch is simply a shortcut for setting environment variables.
+The same effect may be accomplished by setting corresponding environment
+variables before running \fImpirun\fP.
+The form of the environment variables that Open MPI sets is:
+
+      OMPI_MCA_<key>=<value>
+.PP
+Thus, the \fI-mca\fP switch overrides any previously set environment
+variables.  The \fI-mca\fP settings similarly override MCA parameters set
+in the
+$OPAL_PREFIX/etc/openmpi-mca-params.conf or $HOME/.openmpi/mca-params.conf
+file.
+.
+.PP
+Unknown \fI<key>\fP arguments are still set as
+environment variable -- they are not checked (by \fImpirun\fP) for correctness.
+Illegal or incorrect \fI<value>\fP arguments may or may not be reported -- it
+depends on the specific MCA module.
+.PP
+To find the available component types under the MCA architecture, or to find the
+available parameters for a specific component, use the \fIompi_info\fP command.
+See the \fIompi_info(1)\fP man page for detailed information on the command.
+.
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+Be sure also to see the examples throughout the sections above.
+.
+.TP 4
+mpirun -np 4 -mca btl ib,tcp,self prog1
+Run 4 copies of prog1 using the "ib", "tcp", and "self" BTL's for the transport
+of MPI messages.
+.
+.
+.TP 4
+mpirun -np 4 -mca btl tcp,sm,self 
+.br
+--mca btl_tcp_if_include ce0 prog1
+.br
+Run 4 copies of prog1 using the "tcp", "sm" and "self" BTLs for the transport of 
+MPI messages, with TCP using only the ce0 interface to communicate.  Note that 
+other BTLs have similar if_include MCA parameters.
+.
+.\" **************************
+.\"    Diagnostics Section
+.\" **************************
+.
+.\" .SH DIAGNOSTICS
+.\".TP 4
+.\"Error Msg:
+.\"Description
+.
+.\" **************************
+.\"    Return Value Section
+.\" **************************
+.
+.SH RETURN VALUE
+.
+\fImpirun\fP returns 0 if all ranks started by \fImpirun\fP exit after calling
+MPI_FINALIZE.  A non-zero value is returned if an internal error occurred in
+mpirun, or one or more ranks exited before calling MPI_FINALIZE.  If an
+internal error occurred in mpirun, the corresponding error code is returned.
+In the event that one or more ranks exit before calling MPI_FINALIZE, the
+return value of the rank of the process that \fImpirun\fP first notices died
+before calling MPI_FINALIZE will be returned.  Note that, in general, this will
+be the first rank that died but is not guaranteed to be so.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.\" .SH SEE ALSO
+.\" orted(1), ompi-server(1)
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpif77.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpif77.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpif77.1	(revision 97)
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH mpif77 1 "Dec 08, 2009" "1.4" "Open MPI"
+
+.
+.SH NAME
+mpif77 -- Open MPI Fortran 77 wrapper compiler
+.
+.SH SYNTAX
+mpif77 [-showme|-showme:compile|-showme:link] ...
+.
+.SH OPTIONS
+.TP
+-showme 
+Do not invoke the underlying compiler.  Instead, show the command line
+that would be executed to compile the program.  \fBNOTE:\fR If a
+non-filename argument is passed on the command line, the \fI-showme\fR
+option will \fInot\fR display any additional flags.  For example, both
+"mpif77 --showme" and "mpif77 --showme my_source.c" will show all the
+wrapper-supplied flags.  But "mpif77 -showme -v" will only show the
+underlying compiler name and "-v".
+.TP
+-showme:compile
+Do not invoke the underlying Fortran 77 compiler.  Instead, show the
+compiler flags that would be supplied to the Fortran 77 compiler.
+.TP
+-showme:link
+Do not invoke the underlying Fortran 77 compiler.  Instead, show the linker
+flags that would be supplied to the Fortran 77 compiler.
+.PP
+See the man page for your underlying compiler for other options that
+can be passed through mpif77
+.
+.
+.SH DESCRIPTION
+.PP
+Conceptually, the role of these commands is quite simple:
+transparently add relevant compiler and linker flags to the user's
+command line that are necessary to compile / link Open MPI
+programs, and then invoke the underlying compiler to actually perform
+the command.
+.
+.PP
+As such, these commands are frequently referred to as "wrapper"
+compilers because they do not actually compile or link applications
+themselves; they only add in command line flags and invoke the
+back-end compiler.
+.
+.
+.SS Background
+Open MPI is comprised of three software layers: OPAL (Open Portable
+Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
+There are wrapper compilers for each layer; each layer's wrapper only
+links in the libraries relevant for that layer.  Specifically, each
+layer provides the following wrapper compilers:
+.
+.TP 4
+OPAL
+\fIopalcc\fR and \fIopalc++\fR
+.
+.TP
+ORTE
+\fIortecc\fR and \fIortec++\fR
+.
+.TP
+OMPI
+\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
+case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
+that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
+underlying C++ compiler with the same options.  All are provided as
+compatibility with other MPI implementations.
+.
+.PP
+The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
+will be inoperative and will return an error on use if Fortran 77 /
+Fortran 90 support was not built into the MPI layer.
+.
+.
+.SS Overview
+\fImpif77\fR is a convenience wrappers for the underlying
+Fortran 77 compiler.  Translation of an Open MPI program requires the
+linkage of the Open MPI-specific libraries which may not reside in
+one of the standard search directories of ld(1).  It also often
+requires the inclusion of header files what may also not be found in a
+standard location.
+.
+.PP
+\fImpif77\fR passes its arguments to the underlying Fortran 77
+compiler along with the -I, -L and -l options required by Open MPI
+programs.
+.
+.PP
+The Open MPI Team \fIstrongly\fR encourages using the wrapper
+compilers instead of attempting to link to the Open MPI libraries
+manually.  This allows the specific implementation of Open MPI to
+change without forcing changes to linker directives in users'
+Makefiles.  Indeed, the specific set of flags and libraries used by
+the wrapper compilers depends on how Open MPI was configured and
+built; the values can change between different installations of the
+same version of Open MPI.
+.
+.PP
+Indeed, since the wrappers are simply thin shells on top of an
+underlying compiler, there are very, very few compelling reasons
+\fInot\fR to use \fImpif77\fR.  When it is not possible to use the
+wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
+options should be used to determine what flags the wrappers would have
+used.  For example:
+.
+.PP
+shell$ cc -c file1.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc -c file2.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
+.
+.
+.SH NOTES
+.PP
+It is possible to make the wrapper compilers multi-lib aware.  That
+is, the libraries and includes specified may differ based on the
+compiler flags specified (for example, with the GNU compilers on
+Linux, a different library path may be used if -m32 is seen versus
+-m64 being seen).  This is not the default behavior in a standard
+build, but can be activated (for example, in a binary package
+providing both 32 and 64 bit support).  More information can be found
+at:
+.PP
+  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
+.
+.
+.SH FILES
+.PP
+The string that the wrapper compilers insert into the command line
+before invoking the underlying compiler are stored in a text file
+created by Open MPI and installed to
+\fI$pkgdata/mpif77-wrapper-data.txt\fR, where \fI$pkgdata\fR
+is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
+installation directory of Open MPI.
+.
+.PP
+It is rarely necessary to edit this file, but it can be examined to
+gain insight into what flags the wrappers are placing on the command
+line.
+.
+.
+.SH ENVIRONMENT VARIABLES
+.PP 
+By default, the wrappers use the compilers that were selected when
+Open MPI was configured.  These compilers were either found
+automatically by Open MPI's "configure" script, or were selected by
+the user in the CC, CXX, F77, and/or FC environment variables 
+before "configure" was invoked.  Additionally, other arguments
+specific to the compiler may have been selected by configure.
+.
+.PP
+These values can be selectively overridden by either editing the text
+files containing this configuration information (see the \fBFILES\fR
+section), or by setting selected environment variables of the
+form "OMPI_value".
+.
+.PP
+Valid value names are:
+.
+.TP
+CPPFLAGS
+Flags added when invoking the preprocessor (C or C++)
+.
+.TP
+LDFLAGS
+Flags added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+LIBS
+Libraries added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+CC
+C compiler
+.
+.TP
+CFLAGS
+C compiler flags
+.
+.TP
+CXX
+C++ compiler
+.
+.TP
+CXXFLAGS
+C++ compiler flags
+.
+.
+.TP
+F77
+Fortran 77 compiler
+.
+.TP
+FFLAGS
+Fortran 77 compiler flags
+.
+.
+.TP
+FC
+Fortran 90 compiler
+.
+.TP
+FCFLAGS
+Fortran 90 compiler flags
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpif90.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpif90.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpif90.1	(revision 97)
@@ -0,0 +1,210 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH mpif90 1 "Dec 08, 2009" "1.4" "Open MPI"
+
+.
+.SH NAME
+mpif90 -- Open MPI Fortran 90 wrapper compiler
+.
+.SH SYNTAX
+mpif90 [-showme|-showme:compile|-showme:link] ...
+.
+.SH OPTIONS
+.TP
+-showme 
+Do not invoke the underlying compiler.  Instead, show the command line
+that would be executed to compile the program.  \fBNOTE:\fR If a
+non-filename argument is passed on the command line, the \fI-showme\fR
+option will \fInot\fR display any additional flags.  For example, both
+"mpif90 --showme" and "mpif90 --showme my_source.c" will show all the
+wrapper-supplied flags.  But "mpif90 -showme -v" will only show the
+underlying compiler name and "-v".
+.TP
+-showme:compile
+Do not invoke the underlying Fortran 90 compiler.  Instead, show the
+compiler flags that would be supplied to the Fortran 90 compiler.
+.TP
+-showme:link
+Do not invoke the underlying Fortran 90 compiler.  Instead, show the linker
+flags that would be supplied to the Fortran 90 compiler.
+.PP
+See the man page for your underlying compiler for other options that
+can be passed through mpif90
+.
+.
+.SH DESCRIPTION
+.PP
+Conceptually, the role of these commands is quite simple:
+transparently add relevant compiler and linker flags to the user's
+command line that are necessary to compile / link Open MPI
+programs, and then invoke the underlying compiler to actually perform
+the command.
+.
+.PP
+As such, these commands are frequently referred to as "wrapper"
+compilers because they do not actually compile or link applications
+themselves; they only add in command line flags and invoke the
+back-end compiler.
+.
+.
+.SS Background
+Open MPI is comprised of three software layers: OPAL (Open Portable
+Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
+There are wrapper compilers for each layer; each layer's wrapper only
+links in the libraries relevant for that layer.  Specifically, each
+layer provides the following wrapper compilers:
+.
+.TP 4
+OPAL
+\fIopalcc\fR and \fIopalc++\fR
+.
+.TP
+ORTE
+\fIortecc\fR and \fIortec++\fR
+.
+.TP
+OMPI
+\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
+case-senstive file systems), \fImpif77\fR, and \fImpif90\fR.  Note
+that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
+underlying C++ compiler with the same options.  All are provided as
+compatibility with other MPI implementations.
+.
+.PP
+The Fortran wrapper compilers for MPI (\fImpif77\fR and \fImpif90\fR)
+will be inoperative and will return an error on use if Fortran 77 /
+Fortran 90 support was not built into the MPI layer.
+.
+.
+.SS Overview
+\fImpif90\fR is a convenience wrappers for the underlying
+Fortran 90 compiler.  Translation of an Open MPI program requires the
+linkage of the Open MPI-specific libraries which may not reside in
+one of the standard search directories of ld(1).  It also often
+requires the inclusion of header files what may also not be found in a
+standard location.
+.
+.PP
+\fImpif90\fR passes its arguments to the underlying Fortran 90
+compiler along with the -I, -L and -l options required by Open MPI
+programs.
+.
+.PP
+The Open MPI Team \fIstrongly\fR encourages using the wrapper
+compilers instead of attempting to link to the Open MPI libraries
+manually.  This allows the specific implementation of Open MPI to
+change without forcing changes to linker directives in users'
+Makefiles.  Indeed, the specific set of flags and libraries used by
+the wrapper compilers depends on how Open MPI was configured and
+built; the values can change between different installations of the
+same version of Open MPI.
+.
+.PP
+Indeed, since the wrappers are simply thin shells on top of an
+underlying compiler, there are very, very few compelling reasons
+\fInot\fR to use \fImpif90\fR.  When it is not possible to use the
+wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
+options should be used to determine what flags the wrappers would have
+used.  For example:
+.
+.PP
+shell$ cc -c file1.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc -c file2.c `mpicc -showme:compile`
+.
+.PP
+shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
+.
+.
+.SH NOTES
+.PP
+It is possible to make the wrapper compilers multi-lib aware.  That
+is, the libraries and includes specified may differ based on the
+compiler flags specified (for example, with the GNU compilers on
+Linux, a different library path may be used if -m32 is seen versus
+-m64 being seen).  This is not the default behavior in a standard
+build, but can be activated (for example, in a binary package
+providing both 32 and 64 bit support).  More information can be found
+at:
+.PP
+  https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264
+.
+.
+.SH FILES
+.PP
+The string that the wrapper compilers insert into the command line
+before invoking the underlying compiler are stored in a text file
+created by Open MPI and installed to
+\fI$pkgdata/mpif90-wrapper-data.txt\fR, where \fI$pkgdata\fR
+is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
+installation directory of Open MPI.
+.
+.PP
+It is rarely necessary to edit this file, but it can be examined to
+gain insight into what flags the wrappers are placing on the command
+line.
+.
+.
+.SH ENVIRONMENT VARIABLES
+.PP 
+By default, the wrappers use the compilers that were selected when
+Open MPI was configured.  These compilers were either found
+automatically by Open MPI's "configure" script, or were selected by
+the user in the CC, CXX, F77, and/or FC environment variables 
+before "configure" was invoked.  Additionally, other arguments
+specific to the compiler may have been selected by configure.
+.
+.PP
+These values can be selectively overridden by either editing the text
+files containing this configuration information (see the \fBFILES\fR
+section), or by setting selected environment variables of the
+form "OMPI_value".
+.
+.PP
+Valid value names are:
+.
+.TP
+CPPFLAGS
+Flags added when invoking the preprocessor (C or C++)
+.
+.TP
+LDFLAGS
+Flags added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+LIBS
+Libraries added when invoking the linker (C, C++, or Fortran)
+.
+.TP
+CC
+C compiler
+.
+.TP
+CFLAGS
+C compiler flags
+.
+.TP
+CXX
+C++ compiler
+.
+.TP
+CXXFLAGS
+C++ compiler flags
+.
+.
+.TP
+F77
+Fortran 77 compiler
+.
+.TP
+FFLAGS
+Fortran 77 compiler flags
+.
+.
+.TP
+FC
+Fortran 90 compiler
+.
+.TP
+FCFLAGS
+Fortran 90 compiler flags
Index: proiecte/hpl/openmpi_compiled/share/man/man1/mpirun.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/mpirun.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/mpirun.1	(revision 97)
@@ -0,0 +1,1193 @@
+.\" Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's orterun command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH MPIRUN 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+orterun, mpirun, mpiexec \- Execute serial and parallel jobs in Open MPI.
+
+.B Note:
+\fImpirun\fP, \fImpiexec\fP, and \fIorterun\fP are all synonyms for each
+other.  Using any of the names will produce the same behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.PP
+Single Process Multiple Data (SPMD) Model:
+
+.B mpirun
+[ options ] 
+.B <program>
+[ <args> ]
+.P
+
+Multiple Instruction Multiple Data (MIMD) Model:
+
+.B mpirun
+[ global_options ]
+       [ local_options1 ]
+.B <program1>
+[ <args1> ] :
+       [ local_options2 ]
+.B <program2>
+[ <args2> ] : 
+       ... : 
+       [ local_optionsN ]
+.B <programN>
+[ <argsN> ]
+.P
+
+Note that in both models, invoking \fImpirun\fP via an absolute path
+name is equivalent to specifying the \fI--prefix\fP option with a
+\fI<dir>\fR value equivalent to the directory where \fImpirun\fR
+resides, minus its last subdirectory.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+
+.
+.\" **************************
+.\"    Quick Summary Section
+.\" **************************
+.SH QUICK SUMMARY
+.
+If you are simply looking for how to run an MPI application, you
+probably want to use a command line of the following form:
+
+    \fB%\fP mpirun [ -np X ] [ --hostfile <filename> ]  <program>
+
+This will run X copies of \fI<program>\fR in your current run-time
+environment (if running under a supported resource manager, Open MPI's
+\fImpirun\fR will usually automatically use the corresponding resource manager
+process starter, as opposed to, for example, \fIrsh\fR or \fIssh\fR,
+which require the use of a hostfile, or will default to running all X
+copies on the localhost), scheduling (by default) in a round-robin fashion by
+CPU slot.  See the rest of this page for more details.
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.
+.I mpirun
+will send the name of the directory where it was invoked on the local
+node to each of the remote nodes, and attempt to change to that
+directory.  See the "Current Working Directory" section below for further
+details.
+.\"
+.\" Start options listing
+.\"    Indent 10 characters from start of first column to start of second column
+.TP 10
+.B <program>
+The program executable. This is identified as the first non-recognized argument
+to mpirun.
+.
+.
+.TP
+.B <args>
+Pass these run-time arguments to every new process.  These must always
+be the last arguments to \fImpirun\fP. If an app context file is used,
+\fI<args>\fP will be ignored.
+.
+.
+.TP
+.B -h\fR,\fP --help
+Display help for this command
+.
+.
+.TP
+.B -q\fR,\fP --quiet
+Suppress informative messages from orterun during application execution.
+.
+.
+.TP
+.B -v\fR,\fP --verbose
+Be verbose
+.
+.
+.TP
+.B -V\fR,\fP --version
+Print version number.  If no other arguments are given, this will also
+cause orterun to exit.
+.
+.
+.
+.
+.P
+To specify which hosts (nodes) of the cluster to run on:
+.
+.
+.TP
+.B -H\fR,\fP -host\fR,\fP --host \fR<host1,host2,...,hostN>\fP
+List of hosts on which to invoke processes.
+.
+.
+.TP
+.B
+-hostfile\fR,\fP --hostfile \fR<hostfile>\fP
+Provide a hostfile to use. 
+.\" JJH - Should have man page for how to format a hostfile properly.
+.
+.
+.TP
+.B -machinefile\fR,\fP --machinefile \fR<machinefile>\fP
+Synonym for \fI-hostfile\fP.
+.
+.
+.
+.
+.P
+To specify the number of processes to launch:
+.
+.
+.TP
+.B -c\fR,\fP -n\fR,\fP --n\fR,\fP -np \fR<#>\fP
+Run this many copies of the program on the given nodes.  This option
+indicates that the specified file is an executable program and not an
+application context. If no value is provided for the number of copies to
+execute (i.e., neither the "-np" nor its synonyms are provided on the command
+line), Open MPI will automatically execute a copy of the program on
+each process slot (see below for description of a "process slot"). This
+feature, however, can only be used in the SPMD model and will return an
+error (without beginning execution of the application) otherwise. 
+.
+.
+.TP
+.B -npersocket\fR,\fP --npersocket <#persocket>
+On each node, launch this many processes times the number of processor
+sockets on the node.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option.
+.
+.
+.TP
+.B -npernode\fR,\fP --npernode <#pernode>
+On each node, launch this many processes.
+.
+.
+.TP
+.B -pernode\fR,\fP --pernode
+On each node, launch one process -- equivalent to \fI-npernode\fP 1.
+.
+.
+.
+.
+.P
+To map processes to nodes:
+.
+.
+.TP
+.B -loadbalance\fR,\fP --loadbalance
+Uniform distribution of ranks across all nodes. See more detailed description below.
+.
+.TP
+.B -nolocal\fR,\fP --nolocal
+Do not run any copies of the launched application on the same node as
+orterun is running.  This option will override listing the localhost
+with \fB--host\fR or any other host-specifying mechanism.
+.
+.TP
+.B -nooversubscribe\fR,\fP --nooversubscribe
+Do not oversubscribe any nodes; error (without starting any processes)
+if the requested number of processes would cause oversubscription.
+This option implicitly sets "max_slots" equal to the "slots" value for
+each node.
+.
+.TP
+.B -bynode\fR,\fP --bynode
+Launch processes one per node, cycling by node in a round-robin
+fashion.  This spreads processes evenly among nodes and assigns
+ranks in a round-robin, "by node" manner.
+.
+.
+.
+.
+.P
+For process binding:
+.
+.TP
+.B -bycore\fR,\fP --bycore
+Associate processes with successive cores
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -bysocket\fR,\fP --bysocket
+Associate processes with successive processor sockets
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-proc\fR,\fP --cpus-per-proc <#perproc>
+Use the number of cores per process
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-rank\fR,\fP --cpus-per-rank <#perrank>
+Alias for \fI-cpus-per-proc\fP.
+.
+.TP
+.B -bind-to-core\fR,\fP --bind-to-core
+Bind processes to cores.
+.
+.TP
+.B -bind-to-socket\fR,\fP --bind-to-socket
+Bind processes to processor sockets.
+.
+.TP
+.B -bind-to-none\fR,\fP --bind-to-none
+Do not bind processes.  (Default.)
+.
+.TP
+.B -report-bindings\fR,\fP --report-bindings
+Report any bindings for launched processes.
+.
+.TP
+.B -slot-list\fR,\fP --slot-list <slots>
+List of processor IDs to be used for binding MPI processes. The specified bindings will
+be applied to all MPI processes. See explanation below for syntax.
+.
+.
+.
+.
+.P
+For rankfiles:
+.
+.
+.TP
+.B -rf\fR,\fP --rankfile <rankfile>
+Provide a rankfile file.
+.
+.
+.
+.
+.P
+To manage standard I/O:
+.
+.
+.TP
+.B -output-filename\fR,\fP --output-filename \fR<filename>\fP
+Redirect the stdout, stderr, and stddiag of all ranks to a rank-unique version of
+the specified filename. Any directories in the filename will automatically be created.
+Each output file will consist of filename.rank, where the rank will be left-filled with
+zero's for correct ordering in listings.
+.
+.
+.TP
+.B -stdin\fR,\fP --stdin <rank>
+The MPI rank that is to receive stdin. The default is to forward stdin to rank=0, but this
+option can be used to forward stdin to any rank. It is also acceptable to specify \fInone\fP,
+indicating that no ranks are to receive stdin.
+.
+.
+.TP
+.B -tag-output\fR,\fP --tag-output
+Tag each line of output to stdout, stderr, and stddiag with \fB[jobid, rank]<stdxxx>\fP indicating the process jobid
+and rank that generated the output, and the channel which generated it.
+.
+.
+.TP
+.B -timestamp-output\fR,\fP --timestamp-output
+Timestamp each line of output to stdout, stderr, and stddiag.
+.
+.
+.TP
+.B -xml\fR,\fP --xml
+Provide all output to stdout, stderr, and stddiag in an xml format.
+.
+.
+.TP
+.B -xterm\fR,\fP --xterm \fR<ranks>\fP
+Display the specified ranks in separate xterm windows. The ranks are specified
+as a comma-separated list of ranges, with a -1 indicating all. A separate
+window will be created for each specified rank.
+.B Note:
+In some environments, xterm may require that the executable be in the user's
+path, or be specified in absolute or relative terms. Thus, it may be necessary
+to specify a local executable as "./foo" instead of just "foo". If xterm fails to
+find the executable, mpirun will hang, but still respond correctly to a ctrl-c.
+If this happens, please check that the executable is being specified correctly
+and try again.
+.
+.
+.
+.
+.P
+To manage files and runtime environment:
+.
+.
+.TP
+.B -path\fR,\fP --path \fR<path>\fP
+<path> that will be used when attempting to locate the requested
+executables.  This is used prior to using the local PATH setting.
+.
+.
+.TP
+.B --prefix \fR<dir>\fP
+Prefix directory that will be used to set the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote node before invoking Open MPI or
+the target process.  See the "Remote Execution" section, below.
+.
+.
+.TP
+.B --preload-binary
+Copy the specified executable(s) to remote machines prior to starting remote processes. The
+executables will be copied to the Open MPI session directory and will be deleted upon
+completion of the job.
+.
+.
+.TP
+.B --preload-files <files>
+Preload the comma separated list of files to the current working directory of the remote
+machines where processes will be launched prior to starting those processes.
+.
+.
+.TP
+.B --preload-files-dest-dir <path>
+The destination directory to be used for preload-files, if other than the current working
+directory. By default, the absolute and relative paths provided by --preload-files are used.
+.
+.
+.TP
+.B --tmpdir \fR<dir>\fP
+Set the root for the session directory tree for mpirun only.
+.
+.
+.TP
+.B -wd \fR<dir>\fP
+Synonym for \fI-wdir\fP.
+.
+.
+.TP
+.B -wdir \fR<dir>\fP
+Change to the directory <dir> before the user's program executes.
+See the "Current Working Directory" section for notes on relative paths.
+.B Note:
+If the \fI-wdir\fP option appears both on the command line and in an
+application context, the context will take precedence over the command
+line.
+.
+.
+.TP
+.B -x \fR<env>\fP
+Export the specified environment variables to the remote nodes before
+executing the program.  Only one environment variable can be specified
+per \fI-x\fP option.  Existing environment variables can be specified
+or new variable names specified with corresponding values.  For
+example:
+    \fB%\fP mpirun -x DISPLAY -x OFILE=/tmp/out ...
+
+The parser for the \fI-x\fP option is not very sophisticated; it does
+not even understand quoted values.  Users are advised to set variables
+in the environment, and then use \fI-x\fP to export (not define) them.
+.
+.
+.
+.
+.P
+Setting MCA parameters:
+.
+.
+.TP
+.B -gmca\fR,\fP --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca\fR,\fP --mca <key> <value>
+Send arguments to various MCA modules.  See the "MCA" section, below.
+.
+.
+.
+.
+.P
+For debugging:
+.
+.
+.TP
+.B -debug\fR,\fP --debug
+Invoke the user-level debugger indicated by the \fIorte_base_user_debugger\fP
+MCA parameter.
+.
+.
+.TP
+.B -debugger\fR,\fP --debugger
+Sequence of debuggers to search for when \fI--debug\fP is used (i.e.
+a synonym for \fIorte_base_user_debugger\fP MCA parameter).
+.
+.
+.TP
+.B -tv\fR,\fP --tv
+Launch processes under the TotalView debugger.
+Deprecated backwards compatibility flag. Synonym for \fI--debug\fP.
+.
+.
+.
+.
+.P
+There are also other options:
+.
+.
+.TP
+.B -aborted\fR,\fP --aborted \fR<#>\fP
+Set the maximum number of aborted processes to display.
+.
+.
+.TP
+.B --app \fR<appfile>\fP
+Provide an appfile, ignoring all other command line options.
+.
+.
+.TP
+.B -cf\fR,\fP --cartofile \fR<cartofile>\fP
+Provide a cartography file.
+.
+.
+.TP
+.B --hetero
+Indicates that multiple app_contexts are being provided that are a mix of 32/64-bit binaries.
+.
+.
+.TP
+.B -leave-session-attached\fR,\fP --leave-session-attached
+Do not detach OmpiRTE daemons used by this application. This allows error messages from the daemons
+as well as the underlying environment (e.g., when failing to launch a daemon) to be output.
+.
+.
+.TP
+.B -ompi-server\fR,\fP --ompi-server <uri or file>
+Specify the URI of the Open MPI server, or the name of the file (specified as file:filename) that
+contains that info. The Open MPI server is used to support multi-application data exchange via
+the MPI-2 MPI_Publish_name and MPI_Lookup_name functions.
+.
+.
+.TP
+.B -wait-for-server\fR,\fP --wait-for-server
+Pause mpirun before launching the job until ompi-server is detected. This
+is useful in scripts where ompi-server may be started in the background, followed immediately by
+an \fImpirun\fP command that wishes to connect to it. Mpirun will pause until either the specified
+ompi-server is contacted or the server-wait-time is exceeded.
+.
+.
+.TP
+.B -server-wait-time\fR,\fP --server-wait-time <secs>
+The max amount of time (in seconds) mpirun should wait for the ompi-server to start. The default
+is 10 seconds.
+.
+.
+.
+.
+.P
+The following options are useful for developers; they are not generally
+useful to most ORTE and/or MPI users:
+.
+.TP
+.B -d\fR,\fP --debug-devel
+Enable debugging of the OmpiRTE (the run-time layer in Open MPI).
+This is not generally useful for most users.
+.
+.
+.TP
+.B --debug-daemons
+Enable debugging of any OmpiRTE daemons used by this application.
+.
+.
+.TP
+.B --debug-daemons-file
+Enable debugging of any OmpiRTE daemons used by this application, storing
+output in files.
+.
+.
+.TP
+.B -launch-agent\fR,\fP --launch-agent
+Name of the executable that is to be used to start processes on the remote nodes. The default
+is "orted". This option can be used to test new daemon concepts, or to pass options back to the
+daemons without having mpirun itself see them. For example, specifying a launch agent of
+\fRorted -mca odls_base_verbose 5\fR allows the developer to ask the orted for debugging output
+without clutter from mpirun itself.
+.
+.
+.TP
+.B --noprefix
+Disable the automatic --prefix behavior
+.
+.
+.P
+There may be other options listed with \fImpirun --help\fP.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+One invocation of \fImpirun\fP starts an MPI application running under Open
+MPI. If the application is single process multiple data (SPMD), the application
+can be specified on the \fImpirun\fP command line.
+
+If the application is multiple instruction multiple data (MIMD), comprising of
+multiple programs, the set of programs and argument can be specified in one of
+two ways: Extended Command Line Arguments, and Application Context.
+.PP
+An application context describes the MIMD program set including all arguments
+in a separate file.
+.\"See appcontext(5) for a description of the application context syntax.
+This file essentially contains multiple \fImpirun\fP command lines, less the
+command name itself.  The ability to specify different options for different
+instantiations of a program is another reason to use an application context.
+.PP
+Extended command line arguments allow for the description of the application
+layout on the command line using colons (\fI:\fP) to separate the specification
+of programs and arguments. Some options are globally set across all specified
+programs (e.g. --hostfile), while others are specific to a single program
+(e.g. -np).
+.
+.
+.
+.SS Specifying Host Nodes
+.
+Host nodes can be identified on the \fImpirun\fP command line with the \fI-host\fP
+option or in a hostfile.
+.
+.PP
+For example,
+.
+.TP 4
+mpirun -H aa,aa,bb ./a.out
+launches two processes on node aa and one on bb.
+.
+.PP
+Or, consider the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=2
+   bb slots=2
+   cc slots=2
+
+.
+.PP
+Here, we list both the host names (aa, bb, and cc) but also how many "slots"
+there are for each.  Slots indicate how many processes can potentially execute
+on a node.  For best performance, the number of slots may be chosen to be the
+number of cores on the node or the number of processor sockets.  If the hostfile
+does not provide slots information, a default of 1 is assumed.
+When running under resource managers (e.g., SLURM, Torque, etc.),
+Open MPI will obtain both the hostnames and the number of slots directly
+from the resource manger.
+.
+.PP
+.
+.TP 4
+mpirun -hostfile myhostfile ./a.out
+will launch two processes on each of the three nodes.
+.
+.TP 4
+mpirun -hostfile myhostfile -host aa ./a.out
+will launch two processes, both on node aa.
+.
+.TP 4
+mpirun -hostfile myhostfile -host dd ./a.out
+will find no hosts to run on and abort with an error.
+That is, the specified host dd is not in the specified hostfile.
+.
+.SS Specifying Number of Processes
+.
+As we have just seen, the number of processes to run can be set using the
+hostfile.  Other mechanisms exist.
+.
+.PP
+The number of processes launched can be specified as a multiple of the
+number of nodes or processor sockets available.  For example,
+.
+.TP 4
+mpirun -H aa,bb -npersocket 2 ./a.out
+launches processes 0-3 on node aa and process 4-7 on node bb,
+where aa and bb are both dual-socket nodes.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option,
+which is discussed in a later section.
+.
+.TP 4
+mpirun -H aa,bb -npernode 2 ./a.out
+launches processes 0-1 on node aa and processes 2-3 on node bb.
+.
+.TP 4
+mpirun -H aa,bb -npernode 1 ./a.out
+launches one process per host node.
+.
+.TP 4
+mpirun -H aa,bb -pernode ./a.out
+is the same as \fI-npernode\fP 1.
+.
+.
+.PP
+Another alternative is to specify the number of processes with the
+\fI-np\fP option.  Consider now the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=4
+   bb slots=4
+   cc slots=4
+
+.
+.PP
+Now,
+.
+.TP 4
+mpirun -hostfile myhostfile -np 6 ./a.out
+will launch ranks 0-3 on node aa and ranks 4-5 on node bb.  The remaining
+slots in the hostfile will not be used since the \fI-np\fP option indicated
+that only 6 processes should be launched.
+.
+.SS Mapping Processes to Nodes
+.
+The examples above illustrate the default mapping of process ranks
+to nodes.  This mapping can also be controlled with various
+\fImpirun\fP options.  Here, we consider the same hostfile as
+above with \fI-np\fP 6 again:
+.
+
+                          node aa      node bb      node cc
+
+  mpirun                  0 1 2 3      4 5
+
+  mpirun -loadbalance     0 1          2 3          4 5
+
+  mpirun -bynode          0 3          1 4          2 5
+
+  mpirun -nolocal                      0 1 2 3      4 5
+.
+.PP
+The \fI-loadbalance\fP option tries to spread processes out fairly among the
+nodes.
+.
+.PP
+The \fI-bynode\fP option does likewise but numbers the processes in "by node"
+in a round-robin fashion.
+.
+.PP
+The \fI-nolocal\fP option prevents any processes from being mapped onto the
+local host (in this case node aa).  While \fImpirun\fP typically consumes
+few system resources, \fI-nolocal\fP can be helpful for launching very
+large jobs where \fImpirun\fP may actually need to use noticable amounts
+of memory and/or processing time.
+.
+.PP
+Just as \fI-np\fP can specify fewer processes than there are slots, it can
+also oversubscribe the slots.  For example, with the same hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+will launch processes 0-3 on node aa, 4-7 on bb, and 8-11 on cc.  It will
+then add the remaining two processes to whichever nodes it chooses.
+.
+.PP
+One can also specify limits to oversubscription.  For example, with the same
+hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
+will produce an error since \fI-nooversubscribe\fP prevents oversubscription.
+.
+.PP
+Limits to oversubscription can also be specified in the hostfile itself:
+.
+ % cat myhostfile
+ aa slots=4 max_slots=4
+ bb         max_slots=4
+ cc slots=4
+.
+.PP
+The \fImax_slots\fP field specifies such a limit.  When it does, the
+\fIslots\fP value defaults to the limit.  Now:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+causes the first 12 processes to be launched as before, but the remaining
+two processes will be forced onto node cc.  The other two nodes are
+protected by the hostfile against oversubscription by this job.
+.
+.PP
+Using the \fI--nooversubscribe\fR option can be helpful since Open MPI
+currently does not get "max_slots" values from the resource manager.
+.
+.PP
+Of course, \fI-np\fP can also be used with the \fI-H\fP or \fI-host\fP
+option.  For example,
+.
+.TP 4
+mpirun -H aa,bb -np 8 ./a.out
+launches 8 processes.  Since only two hosts are specified, after the first
+two processes are mapped, one to aa and one to bb, the remaining processes
+oversubscribe the specified hosts.
+.
+.PP
+And here is a MIMD example:
+.
+.TP 4
+mpirun -H aa -np 1 hostname : -H bb,cc -np 2 uptime
+will launch process 0 running \fIhostname\fP on node aa and processes 1 and 2
+each running \fIuptime\fP on nodes bb and cc, respectively.
+.
+.SS Process Binding
+.
+Processes may be bound to specific resources on a node.  This can
+improve performance if the operating system is placing processes
+suboptimally.  For example, it might oversubscribe some multi-core
+processor sockets, leaving other sockets idle;  this can lead
+processes to contend unnecessarily for common resources.  Or, it
+might spread processes out too widely;  this can be suboptimal if
+application performance is sensitive to interprocess communication
+costs.  Binding can also keep the operating system from migrating
+processes excessively, regardless of how optimally those processes
+were placed to begin with.
+.
+.PP
+To bind processes, one must first associate them with the resources
+on which they should run.  For example, the \fI-bycore\fP option
+associates the processes on a node with successive cores.  Or,
+\fI-bysocket\fP associates the processes with successive processor sockets,
+cycling through the sockets in a round-robin fashion if necessary.
+And \fI-cpus-per-proc\fP indicates how many cores to bind per process.
+.
+.PP
+But, such association is meaningless unless the processes are actually
+bound to those resources.  The binding option specifies the granularity
+of binding -- say, with \fI-bind-to-core\fP or \fI-bind-to-socket\fP.
+One can also turn binding off with \fI-bind-to-none\fP, which is
+typically the default.
+.
+.PP
+Finally, \fI-report-bindings\fP can be used to report bindings.
+.
+.PP
+As an example, consider a node with two processor sockets, each comprising
+four cores.  We run \fImpirun\fP with \fI-np 4 -report-bindings\fP and
+the following additional options:
+.
+
+ % mpirun ... -bycore -bind-to-core
+ [...] ... binding child [...,0] to cpus 0001
+ [...] ... binding child [...,1] to cpus 0002
+ [...] ... binding child [...,2] to cpus 0004
+ [...] ... binding child [...,3] to cpus 0008
+
+ % mpirun ... -bysocket -bind-to-socket
+ [...] ... binding child [...,0] to socket 0 cpus 000f
+ [...] ... binding child [...,1] to socket 1 cpus 00f0
+ [...] ... binding child [...,2] to socket 0 cpus 000f
+ [...] ... binding child [...,3] to socket 1 cpus 00f0
+
+ % mpirun ... -cpus-per-proc 2 -bind-to-core
+ [...] ... binding child [...,0] to cpus 0003
+ [...] ... binding child [...,1] to cpus 000c
+ [...] ... binding child [...,2] to cpus 0030
+ [...] ... binding child [...,3] to cpus 00c0
+
+ % mpirun ... -bind-to-none
+.
+.PP
+Here, \fI-report-bindings\fP shows the binding of each process as a mask.
+In the first case, the processes bind to successive cores as indicated by
+the masks 0001, 0002, 0004, and 0008.  In the second case, processes bind
+to all cores on successive sockets as indicated by the masks 000f and 00f0.
+The processes cycle through the processor sockets in a round-robin fashion
+as many times as are needed.  In the third case, the masks show us that
+2 cores have been bind per process.  In the fourth case, binding is
+turned off and no bindings are reported.
+.
+.PP
+Open MPI's support for process binding depends on the underlying
+operating system.  Therefore, processing binding may not be available
+on every system.
+.
+.PP
+Process binding can also be set with MCA parameters.
+Their usage is less convenient than that of \fImpirun\fP options.
+On the other hand, MCA parameters can be set not only on the \fImpirun\fP
+command line, but alternatively in a system or user mca-params.conf file
+or as environment variables, as described in the MCA section below.
+The correspondences are:
+.
+
+  mpirun option          MCA parameter key           value
+
+  -bycore                rmaps_base_schedule_policy  core
+  -bysocket              rmaps_base_schedule_policy  socket
+  -bind-to-core          orte_process_binding        core
+  -bind-to-socket        orte_process_binding        socket
+  -bind-to-none          orte_process_binding        none
+.
+.PP
+The \fIorte_process_binding\fP value can also take on the
+\fI:if-avail\fP attribute.  This attribute means that processes
+will be bound only if this is supported on the underlying
+operating system.  Without the attribute, if there is no
+such support, the binding request results in an error.
+For example, you could have
+.
+
+  % cat $HOME/.openmpi/mca-params.conf
+  rmaps_base_schedule_policy = socket
+  orte_process_binding       = socket:if-avail
+.
+.
+.SS Rankfiles
+.
+Rankfiles provide a means for specifying detailed information about
+how process ranks should be mapped to nodes and how they should be bound.
+Consider the following:
+.
+
+    cat myrankfile
+    rank 0=aa slot=1:0-2
+    rank 1=bb slot=0:0,1
+    rank 2=cc slot=1-2
+    mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out
+.
+So that
+
+  Rank 0 runs on node aa, bound to socket 1, cores 0-2.
+  Rank 1 runs on node bb, bound to socket 0, cores 0 and 1.
+  Rank 2 runs on node cc, bound to cores 1 and 2.
+. 
+.
+.SS Application Context or Executable Program?
+.
+To distinguish the two different forms, \fImpirun\fP
+looks on the command line for \fI--app\fP option.  If
+it is specified, then the file named on the command line is
+assumed to be an application context.  If it is not
+specified, then the file is assumed to be an executable program.
+.
+.
+.
+.SS Locating Files
+.
+If no relative or absolute path is specified for a file, Open
+MPI will first look for files by searching the directories specified
+by the \fI--path\fP option.  If there is no \fI--path\fP option set or
+if the file is not found at the \fI--path\fP location, then Open MPI
+will search the user's PATH environment variable as defined on the
+source node(s).
+.PP
+If a relative directory is specified, it must be relative to the initial
+working directory determined by the specific starter used. For example when
+using the rsh or ssh starters, the initial directory is $HOME by default. Other
+starters may set the initial directory to the current working directory from
+the invocation of \fImpirun\fP. 
+.
+.
+.
+.SS Current Working Directory
+.
+The \fI\-wdir\fP mpirun option (and its synonym, \fI\-wd\fP) allows
+the user to change to an arbitrary directory before the program is
+invoked.  It can also be used in application context files to specify
+working directories on specific nodes and/or for specific
+applications.
+.PP
+If the \fI\-wdir\fP option appears both in a context file and on the
+command line, the context file directory will override the command
+line value.
+.PP
+If the \fI-wdir\fP option is specified, Open MPI will attempt to
+change to the specified directory on all of the remote nodes. If this
+fails, \fImpirun\fP will abort.
+.PP
+If the \fI-wdir\fP option is \fBnot\fP specified, Open MPI will send
+the directory name where \fImpirun\fP was invoked to each of the
+remote nodes. The remote nodes will try to change to that
+directory. If they are unable (e.g., if the directory does not exit on
+that node), then Open MPI will use the default directory determined by
+the starter.
+.PP
+All directory changing occurs before the user's program is invoked; it
+does not wait until \fIMPI_INIT\fP is called.  
+.
+.
+.
+.SS Standard I/O
+.
+Open MPI directs UNIX standard input to /dev/null on all processes
+except the MPI_COMM_WORLD rank 0 process. The MPI_COMM_WORLD rank 0 process
+inherits standard input from \fImpirun\fP.
+.B Note:
+The node that invoked \fImpirun\fP need not be the same as the node where the
+MPI_COMM_WORLD rank 0 process resides. Open MPI handles the redirection of
+\fImpirun\fP's standard input to the rank 0 process.
+.PP
+Open MPI directs UNIX standard output and error from remote nodes to the node
+that invoked \fImpirun\fP and prints it on the standard output/error of
+\fImpirun\fP.
+Local processes inherit the standard output/error of \fImpirun\fP and transfer
+to it directly.
+.PP
+Thus it is possible to redirect standard I/O for Open MPI applications by
+using the typical shell redirection procedure on \fImpirun\fP.
+
+      \fB%\fP mpirun -np 2 my_app < my_input > my_output
+
+Note that in this example \fIonly\fP the MPI_COMM_WORLD rank 0 process will
+receive the stream from \fImy_input\fP on stdin.  The stdin on all the other
+nodes will be tied to /dev/null.  However, the stdout from all nodes will
+be collected into the \fImy_output\fP file. 
+.
+.
+.
+.SS Signal Propagation
+.
+When orterun receives a SIGTERM and SIGINT, it will attempt to kill
+the entire job by sending all processes in the job a SIGTERM, waiting
+a small number of seconds, then sending all processes in the job a
+SIGKILL.
+.
+.PP
+SIGUSR1 and SIGUSR2 signals received by orterun are propagated to
+all processes in the job.
+.
+.PP
+One can turn on forwarding of SIGSTOP and SIGCONT to the program executed
+by mpirun by setting the MCA parameter orte_forward_job_control to 1.
+A SIGTSTOP signal to mpirun will then cause a SIGSTOP signal to be sent
+to all of the programs started by mpirun and likewise a SIGCONT signal
+to mpirun will cause a SIGCONT sent.
+.
+.PP
+Other signals are not currently propagated
+by orterun.
+.
+.
+.SS Process Termination / Signal Handling
+.
+During the run of an MPI application, if any rank dies abnormally
+(either exiting before invoking \fIMPI_FINALIZE\fP, or dying as the result of a
+signal), \fImpirun\fP will print out an error message and kill the rest of the
+MPI application.
+.PP
+User signal handlers should probably avoid trying to cleanup MPI state
+(Open MPI is, currently, neither thread-safe nor async-signal-safe).
+For example, if a segmentation fault occurs in \fIMPI_SEND\fP (perhaps because
+a bad buffer was passed in) and a user signal handler is invoked, if this user
+handler attempts to invoke \fIMPI_FINALIZE\fP, Bad Things could happen since
+Open MPI was already "in" MPI when the error occurred.  Since \fImpirun\fP
+will notice that the process died due to a signal, it is probably not
+necessary (and safest) for the user to only clean up non-MPI state.
+.
+.
+.
+.SS Process Environment
+.
+Processes in the MPI application inherit their environment from the
+Open RTE daemon upon the node on which they are running.  The
+environment is typically inherited from the user's shell.  On remote
+nodes, the exact environment is determined by the boot MCA module
+used.  The \fIrsh\fR launch module, for example, uses either
+\fIrsh\fR/\fIssh\fR to launch the Open RTE daemon on remote nodes, and
+typically executes one or more of the user's shell-setup files before
+launching the Open RTE daemon.  When running dynamically linked
+applications which require the \fILD_LIBRARY_PATH\fR environment
+variable to be set, care must be taken to ensure that it is correctly
+set when booting Open MPI.
+.PP
+See the "Remote Execution" section for more details.
+.
+.
+.SS Remote Execution
+.
+Open MPI requires that the \fIPATH\fR environment variable be set to
+find executables on remote nodes (this is typically only necessary in
+\fIrsh\fR- or \fIssh\fR-based environments -- batch/scheduled
+environments typically copy the current environment to the execution
+of remote jobs, so if the current environment has \fIPATH\fR and/or
+\fILD_LIBRARY_PATH\fR set properly, the remote nodes will also have it
+set properly).  If Open MPI was compiled with shared library support,
+it may also be necessary to have the \fILD_LIBRARY_PATH\fR environment
+variable set on remote nodes as well (especially to find the shared
+libraries required to run user MPI applications).
+.PP
+However, it is not always desirable or possible to edit shell
+startup files to set \fIPATH\fR and/or \fILD_LIBRARY_PATH\fR.  The
+\fI--prefix\fR option is provided for some simple configurations where
+this is not possible.
+.PP
+The \fI--prefix\fR option takes a single argument: the base directory
+on the remote node where Open MPI is installed.  Open MPI will use
+this directory to set the remote \fIPATH\fR and \fILD_LIBRARY_PATH\fR
+before executing any Open MPI or user applications.  This allows
+running Open MPI jobs without having pre-configured the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote nodes.
+.PP
+Open MPI adds the basename of the current
+node's "bindir" (the directory where Open MPI's executables are
+installed) to the prefix and uses that to set the \fIPATH\fR on the
+remote node.  Similarly, Open MPI adds the basename of the current
+node's "libdir" (the directory where Open MPI's libraries are
+installed) to the prefix and uses that to set the
+\fILD_LIBRARY_PATH\fR on the remote node.  For example:
+.TP 15
+Local bindir:
+/local/node/directory/bin
+.TP
+Local libdir:
+/local/node/directory/lib64
+.PP
+If the following command line is used:
+
+    \fB%\fP mpirun --prefix /remote/node/directory
+
+Open MPI will add "/remote/node/directory/bin" to the \fIPATH\fR
+and "/remote/node/directory/lib64" to the \fLD_LIBRARY_PATH\fR on the
+remote node before attempting to execute anything.
+.PP
+Note that \fI--prefix\fR can be set on a per-context basis, allowing
+for different values for different nodes.
+.PP
+The \fI--prefix\fR option is not sufficient if the installation paths
+on the remote node are different than the local node (e.g., if "/lib"
+is used on the local node, but "/lib64" is used on the remote node),
+or if the installation paths are something other than a subdirectory
+under a common prefix.  
+.PP
+Note that executing \fImpirun\fR via an absolute pathname is
+equivalent to specifying \fI--prefix\fR without the last subdirectory
+in the absolute pathname to \fImpirun\fR.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+.
+.
+.
+.SS Exported Environment Variables
+.
+All environment variables that are named in the form OMPI_* will automatically
+be exported to new processes on the local and remote nodes.
+The \fI\-x\fP option to \fImpirun\fP can be used to export specific environment
+variables to the new processes.  While the syntax of the \fI\-x\fP
+option allows the definition of new variables, note that the parser
+for this option is currently not very sophisticated - it does not even
+understand quoted values.  Users are advised to set variables in the
+environment and use \fI\-x\fP to export them; not to define them.
+.
+.
+.
+.SS Setting MCA Parameters
+.
+The \fI-mca\fP switch allows the passing of parameters to various MCA
+(Modular Component Architecture) modules.
+.\" Open MPI's MCA modules are described in detail in ompimca(7).
+MCA modules have direct impact on MPI programs because they allow tunable
+parameters to be set at run time (such as which BTL communication device driver
+to use, what parameters to pass to that BTL, etc.).
+.PP
+The \fI-mca\fP switch takes two arguments: \fI<key>\fP and \fI<value>\fP.
+The \fI<key>\fP argument generally specifies which MCA module will receive the value.
+For example, the \fI<key>\fP "btl" is used to select which BTL to be used for
+transporting MPI messages.  The \fI<value>\fP argument is the value that is
+passed.
+For example: 
+.
+.TP 4
+mpirun -mca btl tcp,self -np 1 foo
+Tells Open MPI to use the "tcp" and "self" BTLs, and to run a single copy of
+"foo" an allocated node.
+.
+.TP
+mpirun -mca btl self -np 1 foo
+Tells Open MPI to use the "self" BTL, and to run a single copy of "foo" an
+allocated node.
+.\" And so on.  Open MPI's BTL MCA modules are described in ompimca_btl(7).
+.PP
+The \fI-mca\fP switch can be used multiple times to specify different
+\fI<key>\fP and/or \fI<value>\fP arguments.  If the same \fI<key>\fP is
+specified more than once, the \fI<value>\fPs are concatenated with a comma
+(",") separating them.
+.PP
+Note that the \fI-mca\fP switch is simply a shortcut for setting environment variables.
+The same effect may be accomplished by setting corresponding environment
+variables before running \fImpirun\fP.
+The form of the environment variables that Open MPI sets is:
+
+      OMPI_MCA_<key>=<value>
+.PP
+Thus, the \fI-mca\fP switch overrides any previously set environment
+variables.  The \fI-mca\fP settings similarly override MCA parameters set
+in the
+$OPAL_PREFIX/etc/openmpi-mca-params.conf or $HOME/.openmpi/mca-params.conf
+file.
+.
+.PP
+Unknown \fI<key>\fP arguments are still set as
+environment variable -- they are not checked (by \fImpirun\fP) for correctness.
+Illegal or incorrect \fI<value>\fP arguments may or may not be reported -- it
+depends on the specific MCA module.
+.PP
+To find the available component types under the MCA architecture, or to find the
+available parameters for a specific component, use the \fIompi_info\fP command.
+See the \fIompi_info(1)\fP man page for detailed information on the command.
+.
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+Be sure also to see the examples throughout the sections above.
+.
+.TP 4
+mpirun -np 4 -mca btl ib,tcp,self prog1
+Run 4 copies of prog1 using the "ib", "tcp", and "self" BTL's for the transport
+of MPI messages.
+.
+.
+.TP 4
+mpirun -np 4 -mca btl tcp,sm,self 
+.br
+--mca btl_tcp_if_include ce0 prog1
+.br
+Run 4 copies of prog1 using the "tcp", "sm" and "self" BTLs for the transport of 
+MPI messages, with TCP using only the ce0 interface to communicate.  Note that 
+other BTLs have similar if_include MCA parameters.
+.
+.\" **************************
+.\"    Diagnostics Section
+.\" **************************
+.
+.\" .SH DIAGNOSTICS
+.\".TP 4
+.\"Error Msg:
+.\"Description
+.
+.\" **************************
+.\"    Return Value Section
+.\" **************************
+.
+.SH RETURN VALUE
+.
+\fImpirun\fP returns 0 if all ranks started by \fImpirun\fP exit after calling
+MPI_FINALIZE.  A non-zero value is returned if an internal error occurred in
+mpirun, or one or more ranks exited before calling MPI_FINALIZE.  If an
+internal error occurred in mpirun, the corresponding error code is returned.
+In the event that one or more ranks exit before calling MPI_FINALIZE, the
+return value of the rank of the process that \fImpirun\fP first notices died
+before calling MPI_FINALIZE will be returned.  Note that, in general, this will
+be the first rank that died but is not guaranteed to be so.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.\" .SH SEE ALSO
+.\" orted(1), ompi-server(1)
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-checkpoint.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-checkpoint.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-checkpoint.1	(revision 97)
@@ -0,0 +1,103 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-checkpoint command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH     OMPI-CHECKPOINT  1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-checkpoint, orte-checkpoint \- Checkpoint a running parallel process using the Open MPI
+Checkpoint/Restart Service (CRS)
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-checkpoint\fP, and \fIorte-checkpoint\fP are all exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-checkpoint
+.R [ options ]
+.B <PID_OF_MPIRUN>
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIorte-checkpoint\fR will attempt to notify a running parallel job (identified
+by \fImpirun\fP) that it has been requested that the job checkpoint itself. A
+global snapshot handle reference is presented to the user, which is used in
+\fIompi_restart\fP to restart the job.
+.
+.TP 10
+.B <PID_OF_MPIRUN>
+Process ID of the \fImpirun\fP process.
+.
+.
+.TP
+.B -h | --help
+Display help for this command
+.
+.
+.TP
+.B -w | --nowait
+Do not wait for the application to finish checkpointing before returning.
+.
+.
+.TP
+.B -s | --status
+Display status messages regarding the progression of the checkpoint request.
+.
+.
+.TP
+.B --term
+After checkpointing the running job, terminate it.
+.
+.
+.TP
+.B -v | --verbose
+Enable verbose output for debugging.
+.
+.
+.TP
+.B -gmca | --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca | --mca <key> <value>
+Send arguments to various MCA modules.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIorte-checkpoint\fR can be invoked multiple, non-overlapping times.
+It is convenient to note that the user does not need to spectify
+the checkpointer to be used here, as that is determined completely by each of
+the running process in the job being checkpointed.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  orte-ps(1), orte-clean(1), ompi-restart(1), opal-checkpoint(1), opal-restart(1), opal_crs(7)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-clean.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-clean.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-clean.1	(revision 97)
@@ -0,0 +1,119 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright 2007-2008     Sun Microsystems, Inc.
+.\"
+.TH orte-clean 1 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBorte-clean\fP - Cleans up any stale processes and files leftover
+from Open MPI jobs.
+
+.sp
+
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.ft R
+.nf 
+orte-clean [--verbose]
+.br
+mpirun --pernode [--host | --hostfile \fIfile\fP] orte-clean [--verbose]
+.sp
+
+
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.ft R
+[-v | --verbose] This argument will run the command in verbose
+mode and print out the universes that are getting cleaned up 
+as well as processes that are being killed.
+.sp
+
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.ft R
+\fIorte-clean\fR attempts to clean up any processes and files
+left over from Open MPI jobs that were run in the past as well as any
+currently running jobs.  This includes OMPI infrastructure and helper
+commands, any processes that were spawned as part of the job, and any
+temporary files.  orte-clean will only act upon processes and files
+that belong to the user running the orte-clean command.  If run as
+root, it will kill off processes belonging to any users.
+.sp
+When run from the command line, orte-clean will attempt to clean up
+the local node it is run from.  When launched via mpirun, it will
+clean up the nodes selected by mpirun.
+.sp
+
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+.ft R
+Example 1: Clean up local node only.
+.sp
+.nf
+example% orte-clean
+.fi
+.sp
+
+Example 2: To clean up on a specific set of nodes specified on
+command line, it is recommended to use the pernode option.  This
+will run one orte-clean for each node.  
+.sp
+.nf
+example% mpirun --pernode --host node1,node2,node3 orte-clean
+.fi
+.sp
+To clean up on a specific set of nodes from a file.
+.sp
+.nf
+example% mpirun --pernode --hostfile nodes_file orte-clean
+.fi
+.sp
+Example 3: Within a resource managed environment like N1GE,
+SLURM, or Torque.  The following example is from N1GE.
+.sp
+First, we see that we have two nodes with two CPUs each.
+.sp
+.nf
+example% qsh -pe orte 4
+.br
+example% mpirun -np 4 hostname
+.br
+node1
+.br
+node1
+.br
+node2
+.br
+node2
+.fi
+.sp
+Clean up all the nodes in the cluster.
+.sp
+.nf
+example% mpirun --pernode orte-clean
+.fi
+.sp
+Clean up a subset of the nodes in the cluster.
+.sp
+.nf
+example% mpirun --pernode --host node1 orte-clean
+.fi
+.sp
+
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+.ft R
+orterun(1), orte-ps(1)
+.sp
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-iof.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-iof.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-iof.1	(revision 97)
@@ -0,0 +1,84 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-iof command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI-IOF 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-iof, orte-iof \- Displays a copy of the output streams from a process.
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-iof\fP, and \fIorte-iof\fP are exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-iof
+.R [ options ]
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-iof\fR will display a copy of the indicated stdout, stderr, and/or stddiag streams
+from the designated process.
+.
+.TP 10
+.B -pid | --pid
+The pid of the mpirun executing the process whose streams are to be copied
+.
+.
+.TP
+.B -stdout | --stdout
+Display a copy of the specified process' stdout. If no options are specified, this will
+act as the default
+.
+.
+.TP
+.B -stderr | --stderr
+Display a copy of the specified process' stderr.
+.
+.
+.TP
+.B -stddiag | --stddiag
+Display a copy of the specified process' stddiag.
+.
+.
+.TP
+.B -rank | --rank
+The rank of the process whose output is to be copied.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-iof\fR displays a copy of the indicated stdout, stderr, and/or stddiag streams
+from the designated process. At this time, a ctrl-C must be used to terminate the program.
+The program will terminate cleanly, telling the associated mpirun to close the requested
+streams before exiting.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+orterun(1)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-ps.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-ps.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-ps.1	(revision 97)
@@ -0,0 +1,101 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-ps command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI-PS 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-ps, orte-ps \- Displays information about the active jobs and processes 
+in Open MPI.
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-ps\fP, and \fIorte-ps\fP are exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-ps
+.R [ options ]
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-ps\fR will display information about running job(s) in the current
+universe.
+.
+.TP 10
+.B -h | --help
+Display help for this command
+.
+.
+.TP
+.B -v | --verbose
+Enable verbose output for debugging
+.
+.
+.TP
+.B --daemons
+Display daemon job information.
+.
+.
+.TP
+.B -j | --jobid
+Display the state of a specific job in the universe. By default all jobs will
+be displayed.
+.
+.
+.TP
+.B -p | --vpid
+Display the state of a specific vpid (process) in the universe. By default all
+vpids cooresponding to processes will be displayed. Must be used in conjunction
+with the \fB--jobid\fP option.
+.
+.
+.TP
+.B -n | --nodes
+Display all of the allocated nodes, and their cooresponding states. By default
+this is disabled.
+.
+.
+.TP
+.B -gmca | --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca | --mca <key> <value>
+Send arguments to various MCA modules.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-ps\fR displays the state of jobs running inside an Open RTE universe.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+orterun(1), orte-clean(1)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-restart.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-restart.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-restart.1	(revision 97)
@@ -0,0 +1,115 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-restart command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH     OMPI-RESTART  1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-restart, orte-restart \- Restart a previously checkpointed parallel job
+using the Open PAL Checkpoint/Restart Service (CRS)
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-restart\fP, and \fIorte-restart\fP are all exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-restart
+.R [ options ]
+.B <GLOBAL SNAPSHOT HANDLE>
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-restart\fR will attempt to restart a previously checkpointed parallel
+job from the global snapshot handle reference returned by \fIompi_checkpoint\fP.
+.
+.TP 10
+.B <GLOBAL SNAPSHOT HANDLE>
+The global snapshot handle reference returned by \fIompi_checkpoint\fP, used to
+restart the job. This is required to be the last argument to this command.
+.
+.
+.TP
+.B -h | --help
+Display help for this command
+.
+.
+.TP
+.B -p | --preload
+Preload the checkpoint files on the remote systems before restarting the
+application. Disabled by default.
+.
+.
+.TP
+.B --fork
+Fork off a new process, which is the restarted process. By default, the
+restarted process will replace \fIompi-restart\fR.
+.
+.
+.TP
+.B -s | --seq
+The sequence number of the checkpoint to restart from. By default, the most
+recent sequence number is used (specified by -1).
+.
+.
+.TP
+.B -hostfile | --hostfile
+The hostfile from which to restart the application. Useful in unscheduled
+environments. (Same behavior as --machinefile option)
+.
+.
+.TP
+.B -machinefile | --machinefile
+The machinefile from which to restart the application. Useful in unscheduled
+environments. (Same behavior as --hostfile option)
+.
+.
+.TP
+.B -v | --verbose
+Enable verbose output for debugging.
+.
+.
+.TP
+.B -gmca | --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca | --mca <key> <value>
+Send arguments to various MCA modules.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-restart\fR can be invoked multiple, non-overlapping times. This
+allows the user to restart a previously running parallel job.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  orte-ps(1), orte-clean(1), ompi-checkpoint(1), opal-checkpoint(1), opal-restart(1), opal_crs(7)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi-server.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi-server.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi-server.1	(revision 97)
@@ -0,0 +1,72 @@
+.\"
+.\" Copyright (c) 2007      Los Alamos National Security, LLC
+.\"                         All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-server command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI-SERVER 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-server \- Server for supporting name publish/lookup operations.
+.
+.PP
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.BR ompi-server " [ options ]"
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
+contact information in support of MPI-2's Publish_name and Lookup_name
+functions.
+.
+.TP 10
+.B -h | --help
+Display help for this command
+.
+.
+.TP
+.B -d | --debug
+Enable verbose output for debugging
+.
+.
+.TP
+.B -r | --report-uri \fR<value>\fP
+Report the Open MPI contact information for the server. This information is
+required for MPI jobs to use the data server. Three parameter values are supported:
+(a) '-', indicating that the uri is to be printed to stdout; (b) '+', indicating that
+the uri is to be printed to stderr; and (c) "file:path-to-file", indicating that
+the uri is to be printed to the specified file. The "path-to-file" can be either
+absolute or relative, but must be in a location where the user has write
+permissions. Please note that the resulting file must be read-accessible to
+expected users of the server.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
+contact information in support of MPI-2's Publish_name and Lookup_name
+functions.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/ompi_info.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/ompi_info.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/ompi_info.1	(revision 97)
@@ -0,0 +1,162 @@
+.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
+.\" and released under the BSD license
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH OMPI_INFO 1 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+ompi_info - Display information about the Open MPI installation
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.B ompi_info [options]
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.PP
+.B ompi_info
+provides detailed information about the Open MPI installation.  It can
+be useful for at least three common scenarios:
+.PP
+1. Checking local configuration and seeing how Open MPI was installed.
+.PP
+2. Submitting bug reports / help requests to the Open MPI community
+(see 
+.IR http://www.open-mpi.org/community/help/ )
+.PP
+3. Seeing a list of installed Open MPI plugins and querying what 
+MCA parameters they support.
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.B ompi_info
+accepts the following options:
+.TP 8
+.I \-a|\-\-all 
+Show all configuration options and MCA parameters
+.TP 8
+.I \-\-arch   
+Show architecture Open MPI was compiled on
+.TP 8
+.I \-c|\-\-config
+Show configuration options
+.TP 8
+.I \-gmca|\-\-gmca <param> <value>
+Pass global MCA parameters that are applicable to all contexts.
+.TP 8
+.I \-h|\-\-help
+Shows help / usage message
+.TP 8
+.I \-\-hostname
+Show the hostname that Open MPI was configured and built on
+.TP 8
+.I \-\-internal
+Show internal MCA parameters (not meant to be modified by users)
+.TP 8
+.I \-mca|\-\-mca <param> <value>
+Pass context-specific MCA parameters; they are considered global if --gmca is
+not used and only one context is specified.
+.TP 8
+.I \-\-param <type> <component>
+Show MCA parameters.  The first parameter is the type of the component
+to display; the second parameter is the specific component to display
+(or the keyword "all", meaning "display all components of this type").
+.TP 8
+.I \-\-parsable
+When used in conjunction with other parameters, the output is
+displayed in a machine-parsable format
+.I \-\-parseable
+Synonym for --parsable
+.TP 8
+.I \-\-path <type>
+Show paths that Open MPI was configured with.  Accepts the following
+parameters: prefix, bindir, libdir, incdir, pkglibdir, sysconfdir.
+.TP 8
+.I \-\-pretty
+When used in conjunction with other parameters, the output is
+displayed in 'prettyprint' format (default)
+.TP 8
+.I \-v|\-\-version <component> <scope>
+Show version of Open MPI or a component.  <component> can be the
+keywords "ompi" or "all", the name of a framework (e.g., "coll" shows
+all components in the coll framework), or the name of a specific
+component (e.g., "pls:rsh" shows the information from the rsh PLS
+component).  <scope> can be one of: full, major, minor, release,
+greek, svn.
+.
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+.TP 4
+ompi_info
+Show the default output of options and listing of installed
+components in a human-readable / prettyprint format.
+.
+.
+.TP
+ompi_info --parsable
+Show the default output of options and listing of installed
+components in a machine-parsable format.
+.
+.
+.TP
+ompi_info --param btl openib
+Show the MCA parameters of the "openib" BTL component in a
+human-readable / prettyprint format.
+.
+.
+.TP
+ompi_info --param btl openib --parsable
+Show the MCA parameters of the "openib" BTL component in a
+machine-parsable format.
+.
+.
+.TP
+ompi_info --path bindir
+Show the "bindir" that Open MPI was configured with.
+.
+.
+.TP
+ompi_info --version ompi full --parsable
+Show the full version numbers of Open MPI (including the ORTE and OPAL
+version numbers) in a machine-readable format.
+.
+.
+.TP
+ompi_info --version btl major
+Show the major version number of all BTL components in a prettyprint
+format.
+.
+.
+.TP
+ompi_info --version btl:tcp minor
+Show the minor version number of the TCP BTL component in a
+prettyprint format.
+.
+.
+.TP
+ompi_info --all
+Show 
+.I all 
+information about the Open MPI installation, including all components
+that can be found, the MCA parameters that they support, versions of
+Open MPI and the components, etc.
+.
+.
+.\" **************************
+.\"    Authors Section
+.\" **************************
+.SH AUTHORS
+The Open MPI maintainers -- see 
+.I http://www.openmpi.org/
+or the file
+.IR AUTHORS .
+.PP
+This manual page was originally contributed by Dirk Eddelbuettel
+<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
+MPI, and may be used by others.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/opal_wrapper.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/opal_wrapper.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/opal_wrapper.1	(revision 97)
@@ -0,0 +1,74 @@
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
+.\" and released under the BSD license
+.TH OPAL_WRAPPER 1 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+opal_wrapper - Back-end Open MPI wrapper command
+.SH SYNOPSIS
+.B opal_wrapper [options]
+.SH DESCRIPTION
+.PP
+.B opal_wrapper
+is not meant to be called directly by end users.  It is automatically
+invoked as the back-end by the Open MPI wrapper commands such as:
+.BR mpicc ,
+.BR mpiCC ,
+.BR mpic++ ,
+.BR mpif77 ,
+and
+.BR mpif90 .
+.PP
+Some Open MPI installations may have additional wrapper commands,
+and/or have renamed the wrapper compilers listed above to avoid
+executable name conflicts with other MPI implementations.  Hence, you
+may also have wrapper compilers installed including the following
+names:
+.BR mpif90.openmpi ,
+.BR mpif77.openmpi ,
+.BR mpicxx.openmpi ,
+.BR mpiCC.openmpi ,
+.BR mpicc.openmpi ,
+.BR mpic++.openmpi ,
+.BR opalcc ,
+.BR opalc++ ,
+.BR ortecc ,
+and
+.BR ortec++ ,
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.SH SEE ALSO
+The following may exist depending on your particular Open MPI
+installation:
+.BR mpicc (1),
+.BR mpiCC (1),
+.BR mpic++ (1),
+.BR mpif77 (1),
+.BR mpif90 (1),
+.BR mpif90.openmpi (1),
+.BR mpif77.openmpi (1),
+.BR mpicxx.openmpi (1),
+.BR mpiCC.openmpi (1),
+.BR mpicc.openmpi (1),
+.BR mpic++.openmpi (1),
+.BR ortecc (1),
+.BR ortec++ (1),
+.BR opalccc (1),
+and the website at
+.IR http://www.openmpi.org/ .
+.
+.
+.\" **************************
+.\"    Authors Section
+.\" **************************
+.SH AUTHORS
+The Open MPI maintainers -- see 
+.I http://www.openmpi.org/
+or the file
+.IR AUTHORS .
+.PP
+This manual page was originally contributed by Dirk Eddelbuettel
+<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
+MPI, and may be used by others.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/orte-clean.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/orte-clean.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/orte-clean.1	(revision 97)
@@ -0,0 +1,119 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright 2007-2008     Sun Microsystems, Inc.
+.\"
+.TH orte-clean 1 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBorte-clean\fP - Cleans up any stale processes and files leftover
+from Open MPI jobs.
+
+.sp
+
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.ft R
+.nf 
+orte-clean [--verbose]
+.br
+mpirun --pernode [--host | --hostfile \fIfile\fP] orte-clean [--verbose]
+.sp
+
+
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.ft R
+[-v | --verbose] This argument will run the command in verbose
+mode and print out the universes that are getting cleaned up 
+as well as processes that are being killed.
+.sp
+
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.ft R
+\fIorte-clean\fR attempts to clean up any processes and files
+left over from Open MPI jobs that were run in the past as well as any
+currently running jobs.  This includes OMPI infrastructure and helper
+commands, any processes that were spawned as part of the job, and any
+temporary files.  orte-clean will only act upon processes and files
+that belong to the user running the orte-clean command.  If run as
+root, it will kill off processes belonging to any users.
+.sp
+When run from the command line, orte-clean will attempt to clean up
+the local node it is run from.  When launched via mpirun, it will
+clean up the nodes selected by mpirun.
+.sp
+
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+.ft R
+Example 1: Clean up local node only.
+.sp
+.nf
+example% orte-clean
+.fi
+.sp
+
+Example 2: To clean up on a specific set of nodes specified on
+command line, it is recommended to use the pernode option.  This
+will run one orte-clean for each node.  
+.sp
+.nf
+example% mpirun --pernode --host node1,node2,node3 orte-clean
+.fi
+.sp
+To clean up on a specific set of nodes from a file.
+.sp
+.nf
+example% mpirun --pernode --hostfile nodes_file orte-clean
+.fi
+.sp
+Example 3: Within a resource managed environment like N1GE,
+SLURM, or Torque.  The following example is from N1GE.
+.sp
+First, we see that we have two nodes with two CPUs each.
+.sp
+.nf
+example% qsh -pe orte 4
+.br
+example% mpirun -np 4 hostname
+.br
+node1
+.br
+node1
+.br
+node2
+.br
+node2
+.fi
+.sp
+Clean up all the nodes in the cluster.
+.sp
+.nf
+example% mpirun --pernode orte-clean
+.fi
+.sp
+Clean up a subset of the nodes in the cluster.
+.sp
+.nf
+example% mpirun --pernode --host node1 orte-clean
+.fi
+.sp
+
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+.ft R
+orterun(1), orte-ps(1)
+.sp
Index: proiecte/hpl/openmpi_compiled/share/man/man1/orte-iof.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/orte-iof.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/orte-iof.1	(revision 97)
@@ -0,0 +1,84 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-iof command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI-IOF 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-iof, orte-iof \- Displays a copy of the output streams from a process.
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-iof\fP, and \fIorte-iof\fP are exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-iof
+.R [ options ]
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-iof\fR will display a copy of the indicated stdout, stderr, and/or stddiag streams
+from the designated process.
+.
+.TP 10
+.B -pid | --pid
+The pid of the mpirun executing the process whose streams are to be copied
+.
+.
+.TP
+.B -stdout | --stdout
+Display a copy of the specified process' stdout. If no options are specified, this will
+act as the default
+.
+.
+.TP
+.B -stderr | --stderr
+Display a copy of the specified process' stderr.
+.
+.
+.TP
+.B -stddiag | --stddiag
+Display a copy of the specified process' stddiag.
+.
+.
+.TP
+.B -rank | --rank
+The rank of the process whose output is to be copied.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-iof\fR displays a copy of the indicated stdout, stderr, and/or stddiag streams
+from the designated process. At this time, a ctrl-C must be used to terminate the program.
+The program will terminate cleanly, telling the associated mpirun to close the requested
+streams before exiting.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+orterun(1)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/orte-ps.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/orte-ps.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/orte-ps.1	(revision 97)
@@ -0,0 +1,101 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OMPI's ompi-ps command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI-PS 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+ompi-ps, orte-ps \- Displays information about the active jobs and processes 
+in Open MPI.
+.
+.PP
+.
+\fBNOTE:\fP \fIompi-ps\fP, and \fIorte-ps\fP are exact
+synonyms for each other. Using any of the names will result in exactly
+identical behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B ompi-ps
+.R [ options ]
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH Options
+.
+\fIompi-ps\fR will display information about running job(s) in the current
+universe.
+.
+.TP 10
+.B -h | --help
+Display help for this command
+.
+.
+.TP
+.B -v | --verbose
+Enable verbose output for debugging
+.
+.
+.TP
+.B --daemons
+Display daemon job information.
+.
+.
+.TP
+.B -j | --jobid
+Display the state of a specific job in the universe. By default all jobs will
+be displayed.
+.
+.
+.TP
+.B -p | --vpid
+Display the state of a specific vpid (process) in the universe. By default all
+vpids cooresponding to processes will be displayed. Must be used in conjunction
+with the \fB--jobid\fP option.
+.
+.
+.TP
+.B -n | --nodes
+Display all of the allocated nodes, and their cooresponding states. By default
+this is disabled.
+.
+.
+.TP
+.B -gmca | --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca | --mca <key> <value>
+Send arguments to various MCA modules.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+\fIompi-ps\fR displays the state of jobs running inside an Open RTE universe.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+orterun(1), orte-clean(1)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/orted.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/orted.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/orted.1	(revision 97)
@@ -0,0 +1,46 @@
+.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
+.\" and released under the BSD license.
+.\" Copyright (c) 2008      Sun Microsystems, Inc.  All rights reserved.
+.TH ORTED 1 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+orted - Start an Open RTE User-Level Daemon
+.SH SYNOPSIS
+.B orted [options]
+.SH DESCRIPTION
+.PP
+.B orted
+starts an Open RTE daemon for the Open MPI system.
+.SH NOTE
+The
+.B orted
+command is 
+.I not intended to be manually invoked by end users.  
+.
+It is part of the Open MPI architecture and is invoked automatically
+as necessary.  This man page is mainly intended for those adventerous
+end users and system administrators who have noticed an "orted"
+process and wondered what it is.
+.PP
+As such, the command line options accepted by the 
+.B orted
+are not listed below because they are considered internal and are
+therefore subject to change between versions without warning.
+Running
+.B orted
+with the 
+.I --help
+command line option will show all available options.
+.
+.
+.\" **************************
+.\"    Authors Section
+.\" **************************
+.SH AUTHORS
+The Open MPI maintainers -- see 
+.I http://www.openmpi.org/
+or the file
+.IR AUTHORS .
+.PP
+This manual page was originally contributed by Dirk Eddelbuettel
+<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
+MPI, and may be used by others.
Index: proiecte/hpl/openmpi_compiled/share/man/man1/orterun.1
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man1/orterun.1	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man1/orterun.1	(revision 97)
@@ -0,0 +1,1193 @@
+.\" Copyright (c) 2009      Cisco Systems, Inc.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's orterun command
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH MPIRUN 1 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+orterun, mpirun, mpiexec \- Execute serial and parallel jobs in Open MPI.
+
+.B Note:
+\fImpirun\fP, \fImpiexec\fP, and \fIorterun\fP are all synonyms for each
+other.  Using any of the names will produce the same behavior.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.PP
+Single Process Multiple Data (SPMD) Model:
+
+.B mpirun
+[ options ] 
+.B <program>
+[ <args> ]
+.P
+
+Multiple Instruction Multiple Data (MIMD) Model:
+
+.B mpirun
+[ global_options ]
+       [ local_options1 ]
+.B <program1>
+[ <args1> ] :
+       [ local_options2 ]
+.B <program2>
+[ <args2> ] : 
+       ... : 
+       [ local_optionsN ]
+.B <programN>
+[ <argsN> ]
+.P
+
+Note that in both models, invoking \fImpirun\fP via an absolute path
+name is equivalent to specifying the \fI--prefix\fP option with a
+\fI<dir>\fR value equivalent to the directory where \fImpirun\fR
+resides, minus its last subdirectory.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+
+.
+.\" **************************
+.\"    Quick Summary Section
+.\" **************************
+.SH QUICK SUMMARY
+.
+If you are simply looking for how to run an MPI application, you
+probably want to use a command line of the following form:
+
+    \fB%\fP mpirun [ -np X ] [ --hostfile <filename> ]  <program>
+
+This will run X copies of \fI<program>\fR in your current run-time
+environment (if running under a supported resource manager, Open MPI's
+\fImpirun\fR will usually automatically use the corresponding resource manager
+process starter, as opposed to, for example, \fIrsh\fR or \fIssh\fR,
+which require the use of a hostfile, or will default to running all X
+copies on the localhost), scheduling (by default) in a round-robin fashion by
+CPU slot.  See the rest of this page for more details.
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.
+.I mpirun
+will send the name of the directory where it was invoked on the local
+node to each of the remote nodes, and attempt to change to that
+directory.  See the "Current Working Directory" section below for further
+details.
+.\"
+.\" Start options listing
+.\"    Indent 10 characters from start of first column to start of second column
+.TP 10
+.B <program>
+The program executable. This is identified as the first non-recognized argument
+to mpirun.
+.
+.
+.TP
+.B <args>
+Pass these run-time arguments to every new process.  These must always
+be the last arguments to \fImpirun\fP. If an app context file is used,
+\fI<args>\fP will be ignored.
+.
+.
+.TP
+.B -h\fR,\fP --help
+Display help for this command
+.
+.
+.TP
+.B -q\fR,\fP --quiet
+Suppress informative messages from orterun during application execution.
+.
+.
+.TP
+.B -v\fR,\fP --verbose
+Be verbose
+.
+.
+.TP
+.B -V\fR,\fP --version
+Print version number.  If no other arguments are given, this will also
+cause orterun to exit.
+.
+.
+.
+.
+.P
+To specify which hosts (nodes) of the cluster to run on:
+.
+.
+.TP
+.B -H\fR,\fP -host\fR,\fP --host \fR<host1,host2,...,hostN>\fP
+List of hosts on which to invoke processes.
+.
+.
+.TP
+.B
+-hostfile\fR,\fP --hostfile \fR<hostfile>\fP
+Provide a hostfile to use. 
+.\" JJH - Should have man page for how to format a hostfile properly.
+.
+.
+.TP
+.B -machinefile\fR,\fP --machinefile \fR<machinefile>\fP
+Synonym for \fI-hostfile\fP.
+.
+.
+.
+.
+.P
+To specify the number of processes to launch:
+.
+.
+.TP
+.B -c\fR,\fP -n\fR,\fP --n\fR,\fP -np \fR<#>\fP
+Run this many copies of the program on the given nodes.  This option
+indicates that the specified file is an executable program and not an
+application context. If no value is provided for the number of copies to
+execute (i.e., neither the "-np" nor its synonyms are provided on the command
+line), Open MPI will automatically execute a copy of the program on
+each process slot (see below for description of a "process slot"). This
+feature, however, can only be used in the SPMD model and will return an
+error (without beginning execution of the application) otherwise. 
+.
+.
+.TP
+.B -npersocket\fR,\fP --npersocket <#persocket>
+On each node, launch this many processes times the number of processor
+sockets on the node.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option.
+.
+.
+.TP
+.B -npernode\fR,\fP --npernode <#pernode>
+On each node, launch this many processes.
+.
+.
+.TP
+.B -pernode\fR,\fP --pernode
+On each node, launch one process -- equivalent to \fI-npernode\fP 1.
+.
+.
+.
+.
+.P
+To map processes to nodes:
+.
+.
+.TP
+.B -loadbalance\fR,\fP --loadbalance
+Uniform distribution of ranks across all nodes. See more detailed description below.
+.
+.TP
+.B -nolocal\fR,\fP --nolocal
+Do not run any copies of the launched application on the same node as
+orterun is running.  This option will override listing the localhost
+with \fB--host\fR or any other host-specifying mechanism.
+.
+.TP
+.B -nooversubscribe\fR,\fP --nooversubscribe
+Do not oversubscribe any nodes; error (without starting any processes)
+if the requested number of processes would cause oversubscription.
+This option implicitly sets "max_slots" equal to the "slots" value for
+each node.
+.
+.TP
+.B -bynode\fR,\fP --bynode
+Launch processes one per node, cycling by node in a round-robin
+fashion.  This spreads processes evenly among nodes and assigns
+ranks in a round-robin, "by node" manner.
+.
+.
+.
+.
+.P
+For process binding:
+.
+.TP
+.B -bycore\fR,\fP --bycore
+Associate processes with successive cores
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -bysocket\fR,\fP --bysocket
+Associate processes with successive processor sockets
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-proc\fR,\fP --cpus-per-proc <#perproc>
+Use the number of cores per process
+if used with one of the \fI-bind-to-*\fP options.
+.
+.TP
+.B -cpus-per-rank\fR,\fP --cpus-per-rank <#perrank>
+Alias for \fI-cpus-per-proc\fP.
+.
+.TP
+.B -bind-to-core\fR,\fP --bind-to-core
+Bind processes to cores.
+.
+.TP
+.B -bind-to-socket\fR,\fP --bind-to-socket
+Bind processes to processor sockets.
+.
+.TP
+.B -bind-to-none\fR,\fP --bind-to-none
+Do not bind processes.  (Default.)
+.
+.TP
+.B -report-bindings\fR,\fP --report-bindings
+Report any bindings for launched processes.
+.
+.TP
+.B -slot-list\fR,\fP --slot-list <slots>
+List of processor IDs to be used for binding MPI processes. The specified bindings will
+be applied to all MPI processes. See explanation below for syntax.
+.
+.
+.
+.
+.P
+For rankfiles:
+.
+.
+.TP
+.B -rf\fR,\fP --rankfile <rankfile>
+Provide a rankfile file.
+.
+.
+.
+.
+.P
+To manage standard I/O:
+.
+.
+.TP
+.B -output-filename\fR,\fP --output-filename \fR<filename>\fP
+Redirect the stdout, stderr, and stddiag of all ranks to a rank-unique version of
+the specified filename. Any directories in the filename will automatically be created.
+Each output file will consist of filename.rank, where the rank will be left-filled with
+zero's for correct ordering in listings.
+.
+.
+.TP
+.B -stdin\fR,\fP --stdin <rank>
+The MPI rank that is to receive stdin. The default is to forward stdin to rank=0, but this
+option can be used to forward stdin to any rank. It is also acceptable to specify \fInone\fP,
+indicating that no ranks are to receive stdin.
+.
+.
+.TP
+.B -tag-output\fR,\fP --tag-output
+Tag each line of output to stdout, stderr, and stddiag with \fB[jobid, rank]<stdxxx>\fP indicating the process jobid
+and rank that generated the output, and the channel which generated it.
+.
+.
+.TP
+.B -timestamp-output\fR,\fP --timestamp-output
+Timestamp each line of output to stdout, stderr, and stddiag.
+.
+.
+.TP
+.B -xml\fR,\fP --xml
+Provide all output to stdout, stderr, and stddiag in an xml format.
+.
+.
+.TP
+.B -xterm\fR,\fP --xterm \fR<ranks>\fP
+Display the specified ranks in separate xterm windows. The ranks are specified
+as a comma-separated list of ranges, with a -1 indicating all. A separate
+window will be created for each specified rank.
+.B Note:
+In some environments, xterm may require that the executable be in the user's
+path, or be specified in absolute or relative terms. Thus, it may be necessary
+to specify a local executable as "./foo" instead of just "foo". If xterm fails to
+find the executable, mpirun will hang, but still respond correctly to a ctrl-c.
+If this happens, please check that the executable is being specified correctly
+and try again.
+.
+.
+.
+.
+.P
+To manage files and runtime environment:
+.
+.
+.TP
+.B -path\fR,\fP --path \fR<path>\fP
+<path> that will be used when attempting to locate the requested
+executables.  This is used prior to using the local PATH setting.
+.
+.
+.TP
+.B --prefix \fR<dir>\fP
+Prefix directory that will be used to set the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote node before invoking Open MPI or
+the target process.  See the "Remote Execution" section, below.
+.
+.
+.TP
+.B --preload-binary
+Copy the specified executable(s) to remote machines prior to starting remote processes. The
+executables will be copied to the Open MPI session directory and will be deleted upon
+completion of the job.
+.
+.
+.TP
+.B --preload-files <files>
+Preload the comma separated list of files to the current working directory of the remote
+machines where processes will be launched prior to starting those processes.
+.
+.
+.TP
+.B --preload-files-dest-dir <path>
+The destination directory to be used for preload-files, if other than the current working
+directory. By default, the absolute and relative paths provided by --preload-files are used.
+.
+.
+.TP
+.B --tmpdir \fR<dir>\fP
+Set the root for the session directory tree for mpirun only.
+.
+.
+.TP
+.B -wd \fR<dir>\fP
+Synonym for \fI-wdir\fP.
+.
+.
+.TP
+.B -wdir \fR<dir>\fP
+Change to the directory <dir> before the user's program executes.
+See the "Current Working Directory" section for notes on relative paths.
+.B Note:
+If the \fI-wdir\fP option appears both on the command line and in an
+application context, the context will take precedence over the command
+line.
+.
+.
+.TP
+.B -x \fR<env>\fP
+Export the specified environment variables to the remote nodes before
+executing the program.  Only one environment variable can be specified
+per \fI-x\fP option.  Existing environment variables can be specified
+or new variable names specified with corresponding values.  For
+example:
+    \fB%\fP mpirun -x DISPLAY -x OFILE=/tmp/out ...
+
+The parser for the \fI-x\fP option is not very sophisticated; it does
+not even understand quoted values.  Users are advised to set variables
+in the environment, and then use \fI-x\fP to export (not define) them.
+.
+.
+.
+.
+.P
+Setting MCA parameters:
+.
+.
+.TP
+.B -gmca\fR,\fP --gmca \fR<key> <value>\fP
+Pass global MCA parameters that are applicable to all contexts. \fI<key>\fP is
+the parameter name; \fI<value>\fP is the parameter value.
+.
+.
+.TP
+.B -mca\fR,\fP --mca <key> <value>
+Send arguments to various MCA modules.  See the "MCA" section, below.
+.
+.
+.
+.
+.P
+For debugging:
+.
+.
+.TP
+.B -debug\fR,\fP --debug
+Invoke the user-level debugger indicated by the \fIorte_base_user_debugger\fP
+MCA parameter.
+.
+.
+.TP
+.B -debugger\fR,\fP --debugger
+Sequence of debuggers to search for when \fI--debug\fP is used (i.e.
+a synonym for \fIorte_base_user_debugger\fP MCA parameter).
+.
+.
+.TP
+.B -tv\fR,\fP --tv
+Launch processes under the TotalView debugger.
+Deprecated backwards compatibility flag. Synonym for \fI--debug\fP.
+.
+.
+.
+.
+.P
+There are also other options:
+.
+.
+.TP
+.B -aborted\fR,\fP --aborted \fR<#>\fP
+Set the maximum number of aborted processes to display.
+.
+.
+.TP
+.B --app \fR<appfile>\fP
+Provide an appfile, ignoring all other command line options.
+.
+.
+.TP
+.B -cf\fR,\fP --cartofile \fR<cartofile>\fP
+Provide a cartography file.
+.
+.
+.TP
+.B --hetero
+Indicates that multiple app_contexts are being provided that are a mix of 32/64-bit binaries.
+.
+.
+.TP
+.B -leave-session-attached\fR,\fP --leave-session-attached
+Do not detach OmpiRTE daemons used by this application. This allows error messages from the daemons
+as well as the underlying environment (e.g., when failing to launch a daemon) to be output.
+.
+.
+.TP
+.B -ompi-server\fR,\fP --ompi-server <uri or file>
+Specify the URI of the Open MPI server, or the name of the file (specified as file:filename) that
+contains that info. The Open MPI server is used to support multi-application data exchange via
+the MPI-2 MPI_Publish_name and MPI_Lookup_name functions.
+.
+.
+.TP
+.B -wait-for-server\fR,\fP --wait-for-server
+Pause mpirun before launching the job until ompi-server is detected. This
+is useful in scripts where ompi-server may be started in the background, followed immediately by
+an \fImpirun\fP command that wishes to connect to it. Mpirun will pause until either the specified
+ompi-server is contacted or the server-wait-time is exceeded.
+.
+.
+.TP
+.B -server-wait-time\fR,\fP --server-wait-time <secs>
+The max amount of time (in seconds) mpirun should wait for the ompi-server to start. The default
+is 10 seconds.
+.
+.
+.
+.
+.P
+The following options are useful for developers; they are not generally
+useful to most ORTE and/or MPI users:
+.
+.TP
+.B -d\fR,\fP --debug-devel
+Enable debugging of the OmpiRTE (the run-time layer in Open MPI).
+This is not generally useful for most users.
+.
+.
+.TP
+.B --debug-daemons
+Enable debugging of any OmpiRTE daemons used by this application.
+.
+.
+.TP
+.B --debug-daemons-file
+Enable debugging of any OmpiRTE daemons used by this application, storing
+output in files.
+.
+.
+.TP
+.B -launch-agent\fR,\fP --launch-agent
+Name of the executable that is to be used to start processes on the remote nodes. The default
+is "orted". This option can be used to test new daemon concepts, or to pass options back to the
+daemons without having mpirun itself see them. For example, specifying a launch agent of
+\fRorted -mca odls_base_verbose 5\fR allows the developer to ask the orted for debugging output
+without clutter from mpirun itself.
+.
+.
+.TP
+.B --noprefix
+Disable the automatic --prefix behavior
+.
+.
+.P
+There may be other options listed with \fImpirun --help\fP.
+.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+One invocation of \fImpirun\fP starts an MPI application running under Open
+MPI. If the application is single process multiple data (SPMD), the application
+can be specified on the \fImpirun\fP command line.
+
+If the application is multiple instruction multiple data (MIMD), comprising of
+multiple programs, the set of programs and argument can be specified in one of
+two ways: Extended Command Line Arguments, and Application Context.
+.PP
+An application context describes the MIMD program set including all arguments
+in a separate file.
+.\"See appcontext(5) for a description of the application context syntax.
+This file essentially contains multiple \fImpirun\fP command lines, less the
+command name itself.  The ability to specify different options for different
+instantiations of a program is another reason to use an application context.
+.PP
+Extended command line arguments allow for the description of the application
+layout on the command line using colons (\fI:\fP) to separate the specification
+of programs and arguments. Some options are globally set across all specified
+programs (e.g. --hostfile), while others are specific to a single program
+(e.g. -np).
+.
+.
+.
+.SS Specifying Host Nodes
+.
+Host nodes can be identified on the \fImpirun\fP command line with the \fI-host\fP
+option or in a hostfile.
+.
+.PP
+For example,
+.
+.TP 4
+mpirun -H aa,aa,bb ./a.out
+launches two processes on node aa and one on bb.
+.
+.PP
+Or, consider the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=2
+   bb slots=2
+   cc slots=2
+
+.
+.PP
+Here, we list both the host names (aa, bb, and cc) but also how many "slots"
+there are for each.  Slots indicate how many processes can potentially execute
+on a node.  For best performance, the number of slots may be chosen to be the
+number of cores on the node or the number of processor sockets.  If the hostfile
+does not provide slots information, a default of 1 is assumed.
+When running under resource managers (e.g., SLURM, Torque, etc.),
+Open MPI will obtain both the hostnames and the number of slots directly
+from the resource manger.
+.
+.PP
+.
+.TP 4
+mpirun -hostfile myhostfile ./a.out
+will launch two processes on each of the three nodes.
+.
+.TP 4
+mpirun -hostfile myhostfile -host aa ./a.out
+will launch two processes, both on node aa.
+.
+.TP 4
+mpirun -hostfile myhostfile -host dd ./a.out
+will find no hosts to run on and abort with an error.
+That is, the specified host dd is not in the specified hostfile.
+.
+.SS Specifying Number of Processes
+.
+As we have just seen, the number of processes to run can be set using the
+hostfile.  Other mechanisms exist.
+.
+.PP
+The number of processes launched can be specified as a multiple of the
+number of nodes or processor sockets available.  For example,
+.
+.TP 4
+mpirun -H aa,bb -npersocket 2 ./a.out
+launches processes 0-3 on node aa and process 4-7 on node bb,
+where aa and bb are both dual-socket nodes.
+The \fI-npersocket\fP option also turns on the \fI-bind-to-socket\fP option,
+which is discussed in a later section.
+.
+.TP 4
+mpirun -H aa,bb -npernode 2 ./a.out
+launches processes 0-1 on node aa and processes 2-3 on node bb.
+.
+.TP 4
+mpirun -H aa,bb -npernode 1 ./a.out
+launches one process per host node.
+.
+.TP 4
+mpirun -H aa,bb -pernode ./a.out
+is the same as \fI-npernode\fP 1.
+.
+.
+.PP
+Another alternative is to specify the number of processes with the
+\fI-np\fP option.  Consider now the hostfile
+.
+
+   \fB%\fP cat myhostfile
+   aa slots=4
+   bb slots=4
+   cc slots=4
+
+.
+.PP
+Now,
+.
+.TP 4
+mpirun -hostfile myhostfile -np 6 ./a.out
+will launch ranks 0-3 on node aa and ranks 4-5 on node bb.  The remaining
+slots in the hostfile will not be used since the \fI-np\fP option indicated
+that only 6 processes should be launched.
+.
+.SS Mapping Processes to Nodes
+.
+The examples above illustrate the default mapping of process ranks
+to nodes.  This mapping can also be controlled with various
+\fImpirun\fP options.  Here, we consider the same hostfile as
+above with \fI-np\fP 6 again:
+.
+
+                          node aa      node bb      node cc
+
+  mpirun                  0 1 2 3      4 5
+
+  mpirun -loadbalance     0 1          2 3          4 5
+
+  mpirun -bynode          0 3          1 4          2 5
+
+  mpirun -nolocal                      0 1 2 3      4 5
+.
+.PP
+The \fI-loadbalance\fP option tries to spread processes out fairly among the
+nodes.
+.
+.PP
+The \fI-bynode\fP option does likewise but numbers the processes in "by node"
+in a round-robin fashion.
+.
+.PP
+The \fI-nolocal\fP option prevents any processes from being mapped onto the
+local host (in this case node aa).  While \fImpirun\fP typically consumes
+few system resources, \fI-nolocal\fP can be helpful for launching very
+large jobs where \fImpirun\fP may actually need to use noticable amounts
+of memory and/or processing time.
+.
+.PP
+Just as \fI-np\fP can specify fewer processes than there are slots, it can
+also oversubscribe the slots.  For example, with the same hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+will launch processes 0-3 on node aa, 4-7 on bb, and 8-11 on cc.  It will
+then add the remaining two processes to whichever nodes it chooses.
+.
+.PP
+One can also specify limits to oversubscription.  For example, with the same
+hostfile:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
+will produce an error since \fI-nooversubscribe\fP prevents oversubscription.
+.
+.PP
+Limits to oversubscription can also be specified in the hostfile itself:
+.
+ % cat myhostfile
+ aa slots=4 max_slots=4
+ bb         max_slots=4
+ cc slots=4
+.
+.PP
+The \fImax_slots\fP field specifies such a limit.  When it does, the
+\fIslots\fP value defaults to the limit.  Now:
+.
+.TP 4
+mpirun -hostfile myhostfile -np 14 ./a.out
+causes the first 12 processes to be launched as before, but the remaining
+two processes will be forced onto node cc.  The other two nodes are
+protected by the hostfile against oversubscription by this job.
+.
+.PP
+Using the \fI--nooversubscribe\fR option can be helpful since Open MPI
+currently does not get "max_slots" values from the resource manager.
+.
+.PP
+Of course, \fI-np\fP can also be used with the \fI-H\fP or \fI-host\fP
+option.  For example,
+.
+.TP 4
+mpirun -H aa,bb -np 8 ./a.out
+launches 8 processes.  Since only two hosts are specified, after the first
+two processes are mapped, one to aa and one to bb, the remaining processes
+oversubscribe the specified hosts.
+.
+.PP
+And here is a MIMD example:
+.
+.TP 4
+mpirun -H aa -np 1 hostname : -H bb,cc -np 2 uptime
+will launch process 0 running \fIhostname\fP on node aa and processes 1 and 2
+each running \fIuptime\fP on nodes bb and cc, respectively.
+.
+.SS Process Binding
+.
+Processes may be bound to specific resources on a node.  This can
+improve performance if the operating system is placing processes
+suboptimally.  For example, it might oversubscribe some multi-core
+processor sockets, leaving other sockets idle;  this can lead
+processes to contend unnecessarily for common resources.  Or, it
+might spread processes out too widely;  this can be suboptimal if
+application performance is sensitive to interprocess communication
+costs.  Binding can also keep the operating system from migrating
+processes excessively, regardless of how optimally those processes
+were placed to begin with.
+.
+.PP
+To bind processes, one must first associate them with the resources
+on which they should run.  For example, the \fI-bycore\fP option
+associates the processes on a node with successive cores.  Or,
+\fI-bysocket\fP associates the processes with successive processor sockets,
+cycling through the sockets in a round-robin fashion if necessary.
+And \fI-cpus-per-proc\fP indicates how many cores to bind per process.
+.
+.PP
+But, such association is meaningless unless the processes are actually
+bound to those resources.  The binding option specifies the granularity
+of binding -- say, with \fI-bind-to-core\fP or \fI-bind-to-socket\fP.
+One can also turn binding off with \fI-bind-to-none\fP, which is
+typically the default.
+.
+.PP
+Finally, \fI-report-bindings\fP can be used to report bindings.
+.
+.PP
+As an example, consider a node with two processor sockets, each comprising
+four cores.  We run \fImpirun\fP with \fI-np 4 -report-bindings\fP and
+the following additional options:
+.
+
+ % mpirun ... -bycore -bind-to-core
+ [...] ... binding child [...,0] to cpus 0001
+ [...] ... binding child [...,1] to cpus 0002
+ [...] ... binding child [...,2] to cpus 0004
+ [...] ... binding child [...,3] to cpus 0008
+
+ % mpirun ... -bysocket -bind-to-socket
+ [...] ... binding child [...,0] to socket 0 cpus 000f
+ [...] ... binding child [...,1] to socket 1 cpus 00f0
+ [...] ... binding child [...,2] to socket 0 cpus 000f
+ [...] ... binding child [...,3] to socket 1 cpus 00f0
+
+ % mpirun ... -cpus-per-proc 2 -bind-to-core
+ [...] ... binding child [...,0] to cpus 0003
+ [...] ... binding child [...,1] to cpus 000c
+ [...] ... binding child [...,2] to cpus 0030
+ [...] ... binding child [...,3] to cpus 00c0
+
+ % mpirun ... -bind-to-none
+.
+.PP
+Here, \fI-report-bindings\fP shows the binding of each process as a mask.
+In the first case, the processes bind to successive cores as indicated by
+the masks 0001, 0002, 0004, and 0008.  In the second case, processes bind
+to all cores on successive sockets as indicated by the masks 000f and 00f0.
+The processes cycle through the processor sockets in a round-robin fashion
+as many times as are needed.  In the third case, the masks show us that
+2 cores have been bind per process.  In the fourth case, binding is
+turned off and no bindings are reported.
+.
+.PP
+Open MPI's support for process binding depends on the underlying
+operating system.  Therefore, processing binding may not be available
+on every system.
+.
+.PP
+Process binding can also be set with MCA parameters.
+Their usage is less convenient than that of \fImpirun\fP options.
+On the other hand, MCA parameters can be set not only on the \fImpirun\fP
+command line, but alternatively in a system or user mca-params.conf file
+or as environment variables, as described in the MCA section below.
+The correspondences are:
+.
+
+  mpirun option          MCA parameter key           value
+
+  -bycore                rmaps_base_schedule_policy  core
+  -bysocket              rmaps_base_schedule_policy  socket
+  -bind-to-core          orte_process_binding        core
+  -bind-to-socket        orte_process_binding        socket
+  -bind-to-none          orte_process_binding        none
+.
+.PP
+The \fIorte_process_binding\fP value can also take on the
+\fI:if-avail\fP attribute.  This attribute means that processes
+will be bound only if this is supported on the underlying
+operating system.  Without the attribute, if there is no
+such support, the binding request results in an error.
+For example, you could have
+.
+
+  % cat $HOME/.openmpi/mca-params.conf
+  rmaps_base_schedule_policy = socket
+  orte_process_binding       = socket:if-avail
+.
+.
+.SS Rankfiles
+.
+Rankfiles provide a means for specifying detailed information about
+how process ranks should be mapped to nodes and how they should be bound.
+Consider the following:
+.
+
+    cat myrankfile
+    rank 0=aa slot=1:0-2
+    rank 1=bb slot=0:0,1
+    rank 2=cc slot=1-2
+    mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out
+.
+So that
+
+  Rank 0 runs on node aa, bound to socket 1, cores 0-2.
+  Rank 1 runs on node bb, bound to socket 0, cores 0 and 1.
+  Rank 2 runs on node cc, bound to cores 1 and 2.
+. 
+.
+.SS Application Context or Executable Program?
+.
+To distinguish the two different forms, \fImpirun\fP
+looks on the command line for \fI--app\fP option.  If
+it is specified, then the file named on the command line is
+assumed to be an application context.  If it is not
+specified, then the file is assumed to be an executable program.
+.
+.
+.
+.SS Locating Files
+.
+If no relative or absolute path is specified for a file, Open
+MPI will first look for files by searching the directories specified
+by the \fI--path\fP option.  If there is no \fI--path\fP option set or
+if the file is not found at the \fI--path\fP location, then Open MPI
+will search the user's PATH environment variable as defined on the
+source node(s).
+.PP
+If a relative directory is specified, it must be relative to the initial
+working directory determined by the specific starter used. For example when
+using the rsh or ssh starters, the initial directory is $HOME by default. Other
+starters may set the initial directory to the current working directory from
+the invocation of \fImpirun\fP. 
+.
+.
+.
+.SS Current Working Directory
+.
+The \fI\-wdir\fP mpirun option (and its synonym, \fI\-wd\fP) allows
+the user to change to an arbitrary directory before the program is
+invoked.  It can also be used in application context files to specify
+working directories on specific nodes and/or for specific
+applications.
+.PP
+If the \fI\-wdir\fP option appears both in a context file and on the
+command line, the context file directory will override the command
+line value.
+.PP
+If the \fI-wdir\fP option is specified, Open MPI will attempt to
+change to the specified directory on all of the remote nodes. If this
+fails, \fImpirun\fP will abort.
+.PP
+If the \fI-wdir\fP option is \fBnot\fP specified, Open MPI will send
+the directory name where \fImpirun\fP was invoked to each of the
+remote nodes. The remote nodes will try to change to that
+directory. If they are unable (e.g., if the directory does not exit on
+that node), then Open MPI will use the default directory determined by
+the starter.
+.PP
+All directory changing occurs before the user's program is invoked; it
+does not wait until \fIMPI_INIT\fP is called.  
+.
+.
+.
+.SS Standard I/O
+.
+Open MPI directs UNIX standard input to /dev/null on all processes
+except the MPI_COMM_WORLD rank 0 process. The MPI_COMM_WORLD rank 0 process
+inherits standard input from \fImpirun\fP.
+.B Note:
+The node that invoked \fImpirun\fP need not be the same as the node where the
+MPI_COMM_WORLD rank 0 process resides. Open MPI handles the redirection of
+\fImpirun\fP's standard input to the rank 0 process.
+.PP
+Open MPI directs UNIX standard output and error from remote nodes to the node
+that invoked \fImpirun\fP and prints it on the standard output/error of
+\fImpirun\fP.
+Local processes inherit the standard output/error of \fImpirun\fP and transfer
+to it directly.
+.PP
+Thus it is possible to redirect standard I/O for Open MPI applications by
+using the typical shell redirection procedure on \fImpirun\fP.
+
+      \fB%\fP mpirun -np 2 my_app < my_input > my_output
+
+Note that in this example \fIonly\fP the MPI_COMM_WORLD rank 0 process will
+receive the stream from \fImy_input\fP on stdin.  The stdin on all the other
+nodes will be tied to /dev/null.  However, the stdout from all nodes will
+be collected into the \fImy_output\fP file. 
+.
+.
+.
+.SS Signal Propagation
+.
+When orterun receives a SIGTERM and SIGINT, it will attempt to kill
+the entire job by sending all processes in the job a SIGTERM, waiting
+a small number of seconds, then sending all processes in the job a
+SIGKILL.
+.
+.PP
+SIGUSR1 and SIGUSR2 signals received by orterun are propagated to
+all processes in the job.
+.
+.PP
+One can turn on forwarding of SIGSTOP and SIGCONT to the program executed
+by mpirun by setting the MCA parameter orte_forward_job_control to 1.
+A SIGTSTOP signal to mpirun will then cause a SIGSTOP signal to be sent
+to all of the programs started by mpirun and likewise a SIGCONT signal
+to mpirun will cause a SIGCONT sent.
+.
+.PP
+Other signals are not currently propagated
+by orterun.
+.
+.
+.SS Process Termination / Signal Handling
+.
+During the run of an MPI application, if any rank dies abnormally
+(either exiting before invoking \fIMPI_FINALIZE\fP, or dying as the result of a
+signal), \fImpirun\fP will print out an error message and kill the rest of the
+MPI application.
+.PP
+User signal handlers should probably avoid trying to cleanup MPI state
+(Open MPI is, currently, neither thread-safe nor async-signal-safe).
+For example, if a segmentation fault occurs in \fIMPI_SEND\fP (perhaps because
+a bad buffer was passed in) and a user signal handler is invoked, if this user
+handler attempts to invoke \fIMPI_FINALIZE\fP, Bad Things could happen since
+Open MPI was already "in" MPI when the error occurred.  Since \fImpirun\fP
+will notice that the process died due to a signal, it is probably not
+necessary (and safest) for the user to only clean up non-MPI state.
+.
+.
+.
+.SS Process Environment
+.
+Processes in the MPI application inherit their environment from the
+Open RTE daemon upon the node on which they are running.  The
+environment is typically inherited from the user's shell.  On remote
+nodes, the exact environment is determined by the boot MCA module
+used.  The \fIrsh\fR launch module, for example, uses either
+\fIrsh\fR/\fIssh\fR to launch the Open RTE daemon on remote nodes, and
+typically executes one or more of the user's shell-setup files before
+launching the Open RTE daemon.  When running dynamically linked
+applications which require the \fILD_LIBRARY_PATH\fR environment
+variable to be set, care must be taken to ensure that it is correctly
+set when booting Open MPI.
+.PP
+See the "Remote Execution" section for more details.
+.
+.
+.SS Remote Execution
+.
+Open MPI requires that the \fIPATH\fR environment variable be set to
+find executables on remote nodes (this is typically only necessary in
+\fIrsh\fR- or \fIssh\fR-based environments -- batch/scheduled
+environments typically copy the current environment to the execution
+of remote jobs, so if the current environment has \fIPATH\fR and/or
+\fILD_LIBRARY_PATH\fR set properly, the remote nodes will also have it
+set properly).  If Open MPI was compiled with shared library support,
+it may also be necessary to have the \fILD_LIBRARY_PATH\fR environment
+variable set on remote nodes as well (especially to find the shared
+libraries required to run user MPI applications).
+.PP
+However, it is not always desirable or possible to edit shell
+startup files to set \fIPATH\fR and/or \fILD_LIBRARY_PATH\fR.  The
+\fI--prefix\fR option is provided for some simple configurations where
+this is not possible.
+.PP
+The \fI--prefix\fR option takes a single argument: the base directory
+on the remote node where Open MPI is installed.  Open MPI will use
+this directory to set the remote \fIPATH\fR and \fILD_LIBRARY_PATH\fR
+before executing any Open MPI or user applications.  This allows
+running Open MPI jobs without having pre-configured the \fIPATH\fR and
+\fILD_LIBRARY_PATH\fR on the remote nodes.
+.PP
+Open MPI adds the basename of the current
+node's "bindir" (the directory where Open MPI's executables are
+installed) to the prefix and uses that to set the \fIPATH\fR on the
+remote node.  Similarly, Open MPI adds the basename of the current
+node's "libdir" (the directory where Open MPI's libraries are
+installed) to the prefix and uses that to set the
+\fILD_LIBRARY_PATH\fR on the remote node.  For example:
+.TP 15
+Local bindir:
+/local/node/directory/bin
+.TP
+Local libdir:
+/local/node/directory/lib64
+.PP
+If the following command line is used:
+
+    \fB%\fP mpirun --prefix /remote/node/directory
+
+Open MPI will add "/remote/node/directory/bin" to the \fIPATH\fR
+and "/remote/node/directory/lib64" to the \fLD_LIBRARY_PATH\fR on the
+remote node before attempting to execute anything.
+.PP
+Note that \fI--prefix\fR can be set on a per-context basis, allowing
+for different values for different nodes.
+.PP
+The \fI--prefix\fR option is not sufficient if the installation paths
+on the remote node are different than the local node (e.g., if "/lib"
+is used on the local node, but "/lib64" is used on the remote node),
+or if the installation paths are something other than a subdirectory
+under a common prefix.  
+.PP
+Note that executing \fImpirun\fR via an absolute pathname is
+equivalent to specifying \fI--prefix\fR without the last subdirectory
+in the absolute pathname to \fImpirun\fR.  For example:
+
+    \fB%\fP /usr/local/bin/mpirun ...
+
+is equivalent to
+
+    \fB%\fP mpirun --prefix /usr/local
+.
+.
+.
+.SS Exported Environment Variables
+.
+All environment variables that are named in the form OMPI_* will automatically
+be exported to new processes on the local and remote nodes.
+The \fI\-x\fP option to \fImpirun\fP can be used to export specific environment
+variables to the new processes.  While the syntax of the \fI\-x\fP
+option allows the definition of new variables, note that the parser
+for this option is currently not very sophisticated - it does not even
+understand quoted values.  Users are advised to set variables in the
+environment and use \fI\-x\fP to export them; not to define them.
+.
+.
+.
+.SS Setting MCA Parameters
+.
+The \fI-mca\fP switch allows the passing of parameters to various MCA
+(Modular Component Architecture) modules.
+.\" Open MPI's MCA modules are described in detail in ompimca(7).
+MCA modules have direct impact on MPI programs because they allow tunable
+parameters to be set at run time (such as which BTL communication device driver
+to use, what parameters to pass to that BTL, etc.).
+.PP
+The \fI-mca\fP switch takes two arguments: \fI<key>\fP and \fI<value>\fP.
+The \fI<key>\fP argument generally specifies which MCA module will receive the value.
+For example, the \fI<key>\fP "btl" is used to select which BTL to be used for
+transporting MPI messages.  The \fI<value>\fP argument is the value that is
+passed.
+For example: 
+.
+.TP 4
+mpirun -mca btl tcp,self -np 1 foo
+Tells Open MPI to use the "tcp" and "self" BTLs, and to run a single copy of
+"foo" an allocated node.
+.
+.TP
+mpirun -mca btl self -np 1 foo
+Tells Open MPI to use the "self" BTL, and to run a single copy of "foo" an
+allocated node.
+.\" And so on.  Open MPI's BTL MCA modules are described in ompimca_btl(7).
+.PP
+The \fI-mca\fP switch can be used multiple times to specify different
+\fI<key>\fP and/or \fI<value>\fP arguments.  If the same \fI<key>\fP is
+specified more than once, the \fI<value>\fPs are concatenated with a comma
+(",") separating them.
+.PP
+Note that the \fI-mca\fP switch is simply a shortcut for setting environment variables.
+The same effect may be accomplished by setting corresponding environment
+variables before running \fImpirun\fP.
+The form of the environment variables that Open MPI sets is:
+
+      OMPI_MCA_<key>=<value>
+.PP
+Thus, the \fI-mca\fP switch overrides any previously set environment
+variables.  The \fI-mca\fP settings similarly override MCA parameters set
+in the
+$OPAL_PREFIX/etc/openmpi-mca-params.conf or $HOME/.openmpi/mca-params.conf
+file.
+.
+.PP
+Unknown \fI<key>\fP arguments are still set as
+environment variable -- they are not checked (by \fImpirun\fP) for correctness.
+Illegal or incorrect \fI<value>\fP arguments may or may not be reported -- it
+depends on the specific MCA module.
+.PP
+To find the available component types under the MCA architecture, or to find the
+available parameters for a specific component, use the \fIompi_info\fP command.
+See the \fIompi_info(1)\fP man page for detailed information on the command.
+.
+.\" **************************
+.\"    Examples Section
+.\" **************************
+.SH EXAMPLES
+Be sure also to see the examples throughout the sections above.
+.
+.TP 4
+mpirun -np 4 -mca btl ib,tcp,self prog1
+Run 4 copies of prog1 using the "ib", "tcp", and "self" BTL's for the transport
+of MPI messages.
+.
+.
+.TP 4
+mpirun -np 4 -mca btl tcp,sm,self 
+.br
+--mca btl_tcp_if_include ce0 prog1
+.br
+Run 4 copies of prog1 using the "tcp", "sm" and "self" BTLs for the transport of 
+MPI messages, with TCP using only the ce0 interface to communicate.  Note that 
+other BTLs have similar if_include MCA parameters.
+.
+.\" **************************
+.\"    Diagnostics Section
+.\" **************************
+.
+.\" .SH DIAGNOSTICS
+.\".TP 4
+.\"Error Msg:
+.\"Description
+.
+.\" **************************
+.\"    Return Value Section
+.\" **************************
+.
+.SH RETURN VALUE
+.
+\fImpirun\fP returns 0 if all ranks started by \fImpirun\fP exit after calling
+MPI_FINALIZE.  A non-zero value is returned if an internal error occurred in
+mpirun, or one or more ranks exited before calling MPI_FINALIZE.  If an
+internal error occurred in mpirun, the corresponding error code is returned.
+In the event that one or more ranks exit before calling MPI_FINALIZE, the
+return value of the rank of the process that \fImpirun\fP first notices died
+before calling MPI_FINALIZE will be returned.  Note that, in general, this will
+be the first rank that died but is not guaranteed to be so.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.\" .SH SEE ALSO
+.\" orted(1), ompi-server(1)
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI.3	(revision 97)
@@ -0,0 +1,148 @@
+.\"Copyright 2008 Sun Microsystems, Inc. 
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+MPI \- General information Open MPI 1.4. 
+
+.SH MPI
+.ft R
+Open MPI is an open source implementation of MPI (message-passing
+interface), the industry-standard specification for writing
+message-passing programs. Message passing is a programming model that
+gives the programmer explicit control over interprocess communication.
+.sp
+The MPI specification was developed by the MPI Forum, a group of
+software developers, computer vendors, academics, and computer-science
+researchers whose goal was to develop a standard for writing
+message-passing programs that would be efficient, flexible, and
+portable.
+.sp
+The outcome, known as the MPI Standard, was first published in 1993;
+its most recent version (MPI-2) was published in July 1997. Open MPI
+1.2 includes all MPI 1.2-compliant and MPI 2-compliant routines.
+.sp
+For more information about Open MPI, see the following URL:
+.nf
+
+   http://www.open-mpi.org
+.fi
+.sp
+The MPI standards are available at the following URL:
+.nf
+
+    http://www.mpi-forum.org
+.fi
+
+.SH MAN PAGE SYNTAX
+.ft R
+Man pages for Open MPI and Open MPI I/O routines are named according to C syntax, that is, they begin with the prefix "MPI_", all in uppercase, and the first letter following the "MPI_" prefix is also uppercase. The rest of the letters in the routine are all lowercase, for example, "MPI_Comm_get_attr". 
+
+.SH ENVIRONMENT
+.ft R
+To fine-tune your Open MPI environment, you can either use arguments to the \fImpirun\fP, \fIorterun\fP, or \fImpiexec\fP commands, or you can use MCA parameters. 
+.sp
+For more information on arguments, see the orterun.1 man page.
+.sp
+For a complete listing of MCA parameters and their descriptions, issue the command \fIompi_info -h\fP or \fIompi_info -param all all\fP. This information also appears in the FAQ on the Open MPI web site at:
+.nf
+
+   http://www.open-mpi.org/faq/?category=tuning#mca-params
+.fi
+
+.SH ERRORS
+.ft R
+All MPI routines (except MPI_Wtime and MPI_Wtick) return an error value; C routines as the value of the function and Fortran routines in the last
+argument.  Before the value is returned, the current MPI error handler is
+called.  By default, this error handler aborts the MPI job.  The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned.
+Note that MPI does not guarantee that an MPI program can continue past
+an error. 
+.sp
+For more information on Open MPI error codes, see \fImpi.h\fP in the \fIinclude\fP directory.
+.sp
+Standard error return classes for Open MPI:
+.sp
+.nf
+MPI_SUCCESS              0      Successful return code.
+MPI_ERR_BUFFER           1      Invalid buffer pointer.
+MPI_ERR_COUNT            2      Invalid count argument.
+MPI_ERR_TYPE             3      Invalid datatype argument.
+MPI_ERR_TAG              4      Invalid tag argument.
+MPI_ERR_COMM             5      Invalid communicator.
+
+MPI_ERR_RANK             6      Invalid rank.
+MPI_ERR_REQUEST          7      Invalid MPI_Request handle.
+MPI_ERR_ROOT             7      Invalid root.
+MPI_ERR_GROUP            8      Null group passed to function.
+MPI_ERR_OP               9      Invalid operation.
+MPI_ERR_TOPOLOGY        10      Invalid topology.
+
+MPI_ERR_DIMS            11      Illegal dimension argument.
+MPI_ERR_ARG             12      Invalid argument.
+MPI_ERR_UNKNOWN         13      Unknown error.
+MPI_ERR_TRUNCATE        14      Message truncated on receive.
+MPI_ERR_OTHER           15      Other error; use Error_string.
+
+MPI_ERR_INTERN          16      Internal error code.
+MPI_ERR_IN_STATUS       17      Look in status for error value.
+MPI_ERR_PENDING         18      Pending request. 
+MPI_ERR_ACCESS          19      Permission denied.
+MPI_ERR_AMODE           20      Unsupported amode passed to open.
+ 
+MPI_ERR_ASSERT          21      Invalid assert.
+MPI_ERR_BAD_FILE        22      Invalid file name (for example, 
+                                path name too long). 
+MPI_ERR_BASE            23      Invalid base.
+MPI_ERR_CONVERSION      24      An error occurred in a user-supplied 
+                                data-conversion function. 
+MPI_ERR_DISP            25      Invalid displacement.
+
+MPI_ERR_DUP_DATAREP     26      Conversion functions could not 
+                                be registered because a data 
+                                representation identifier that was 
+                                already defined was passed to 
+                                MPI_REGISTER_DATAREP. 
+MPI_ERR_FILE_EXISTS     27      File exists. 
+MPI_ERR_FILE_IN_USE     28      File operation could not be 
+                                completed, as the file is currently 
+                                open by some process. 
+MPI_ERR_FILE            29
+MPI_ERR_INFO_KEY        30      Illegal info key. 
+
+MPI_ERR_INFO_NOKEY      31      No such key. 
+MPI_ERR_INFO_VALUE      32      Illegal info value. 
+MPI_ERR_INFO            33      Invalid info object. 
+MPI_ERR_IO              34      I/O error. 
+MPI_ERR_KEYVAL          35      Illegal key value. 
+
+MPI_ERR_LOCKTYPE        36      Invalid locktype.
+MPI_ERR_NAME            37      Name not found.
+MPI_ERR_NO_MEM          38      Memory exhausted. 
+MPI_ERR_NOT_SAME        39
+MPI_ERR_NO_SPACE        40      Not enough space. 
+
+MPI_ERR_NO_SUCH_FILE    41      File (or directory) does not exist. 
+MPI_ERR_PORT            42      Invalid port.
+MPI_ERR_QUOTA           43      Quota exceeded. 
+MPI_ERR_READ_ONLY       44      Read-only file system. 
+MPI_ERR_RMA_CONFLICT    45      Conflicting accesses to window.
+ 
+MPI_ERR_RMA_SYNC        46      Erroneous RMA synchronization. 
+MPI_ERR_SERVICE         47      Invalid publish/unpublish.
+MPI_ERR_SIZE            48      Invalid size.
+MPI_ERR_SPAWN           49      Error spawning. 
+MPI_ERR_UNSUPPORTED_DATAREP      
+                        50      Unsupported datarep passed to 
+                                MPI_File_set_view.
+
+MPI_ERR_UNSUPPORTED_OPERATION
+                        51      Unsupported operation, such as 
+                                seeking on a file that supports 
+                                only sequential access. 
+MPI_ERR_WIN             52      Invalid window.
+MPI_ERR_LASTCODE        53      Last error code.
+
+MPI_ERR_SYSRESOURCE     -2      Out of resources
+.fi
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Abort.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Abort.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Abort.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Abort 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Abort\fP \- Terminates MPI execution environment.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Abort(MPI_Comm \fIcomm\fP, int\fI errorcode\fP)
+
+.SH Fortran Syntax
+.ft R
+.nf
+INCLUDE 'mpif.h'
+MPI_ABORT(\fICOMM\fP, \fIERRORCODE\fP, \fIIERROR\fP)			
+	INTEGER		\fICOMM\fP,\fI ERRORCODE\fP,\fI IERROR 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Abort(int \fIerrorcode\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm    
+Communicator of tasks to abort.
+.TP 1i
+errorcode    
+Error code to return to invoking environment.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine makes a "best attempt" to abort all tasks in the group of
+comm. This function does not require that the invoking environment take any
+action with the error code. However, a UNIX or POSIX
+environment should handle this as a return errorcode from the main program
+or an abort (errorcode).
+.sp
+The Open MPI implementation terminates all processes in all tasks that contain a process in \fIcomm\fP, and the error code is not returned to the invoking environment.
+.sp
+Note: All associated processes are sent a SIGTERM.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Accumulate.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Accumulate.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Accumulate.3	(revision 97)
@@ -0,0 +1,123 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Accumulate 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Accumulate \fP \- Combines the contents of the origin buffer with that of a target buffer. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Accumulate(void *\fIorigin_addr\fP, int \fIorigin_count\fP, 
+	MPI_Datatype \fIorigin_datatype\fP, int \fItarget_rank\fP, 
+	MPI_Aint \fItarget_disp\fP, int \fItarget_count\fP, 
+	MPI_Datatype \fItarget_datatype\fP, MPI_Op \fIop\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_ACCUMULATE(\fIORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, 
+	TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, OP, WIN, IERROR\fP) 
+	<type> \fIORIGIN_ADDR\fP(*) 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fITARGET_DISP\fP 
+	INTEGER \fIORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, TARGET_COUNT, 
+	TARGET_DATATYPE, OP, WIN, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Accumulate(const void* \fIorigin_addr\fP, int \fIorigin_count\fP, 
+	const MPI::Datatype& \fIorigin_datatype\fP, int \fItarget_rank\fP, 
+	MPI::Aint \fItarget_disp\fP, int \fItarget_count\fP, const MPI::Datatype& 
+	\fItarget_datatype\fP, const MPI::Op& \fIop\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+origin_addr
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+origin_count
+Number of entries in buffer (nonnegative integer).
+.ft R
+.TP 1i
+origin_datatype
+Data type of each buffer entry (handle).
+.ft R
+.TP 1i
+target_rank
+Rank of target (nonnegative integer).
+.ft R
+.TP 1i
+target_disp
+Displacement from start of window to beginning of target buffer (nonnegative integer). 
+.ft R
+.TP 1i
+target_count
+Number of entries in target buffer (nonnegative integer). 
+.ft R
+.TP 1i
+target_datatype
+Data type of each entry in target buffer (handle).
+.ft R
+.TP 1i
+op
+Reduce operation (handle). 
+.ft R
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Accumulate is a function used for one-sided MPI communication that adds the contents of the origin buffer (as defined by \fIorigin_addr\fP, \fIorigin_count\fP, and \fIorigin_datatype\fP) to the buffer specified by the arguments \fItarget_count\fP and \fItarget_datatype\fP, at offset \fItarget_disp\fP, in the target window specified by \fItarget_rank\fP and \fIwin\fP, using the operation \fIop\fP. The target window can only be accessed by processes within the same node. This is similar to MPI_Put, except that data is combined into the target area instead of overwriting it. 
+.sp
+Any of the predefined operations for MPI_Reduce can be used. User-defined functions cannot be used. For example, if \fIop\fP is MPI_SUM, each element of the origin buffer is added to the corresponding element in the target, replacing the former value in the target. 
+.sp
+Each datatype argument must be a predefined data type or a derived data type, where all basic components are of the same predefined data type. Both datatype arguments must be constructed from the same predefined data type. The operation \fIop\fP applies to elements of that predefined type. The \fItarget_datatype\fP argument must not specify overlapping entries, and the target buffer must fit in the target window. 
+.sp
+A new predefined operation, MPI_REPLACE, is defined. It corresponds to the associative function f(a, b) =b; that is, the current value in the target memory is replaced by the value supplied by the origin. 
+
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fITARGET_DISP\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fITARGET_DISP\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+MPI_Put is a special case of MPI_Accumulate, with the operation MPI_REPLACE. Note, however, that MPI_Put and MPI_Accumulate have different constraints on concurrent updates. 
+.sp
+It is the user's responsibility to guarantee that, when
+using the accumulate functions, the target displacement argument is such
+that accesses to the window are properly aligned according to the data
+type arguments in the call to the MPI_Accumulate function.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Put 
+.br
+MPI_Reduce
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_class.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_class.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_class.3	(revision 97)
@@ -0,0 +1,83 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Add_error_class 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Add_error_class\fP \- Creates a new error class and returns its value
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Add_error_class(int *\fIerrorclass\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ADD_ERROR_CLASS(\fIERRORCLASS, IERROR\fP)
+	INTEGER	\fIERRORCLASS, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::Add_error_class()
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.4i
+errorclass
+New error class (integer).
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Add_error_class creates a new, local error
+class.
+
+.SH NOTES
+.ft R
+Because this function is local, the same value of \fIerrorclass\fP may
+not be returned on all processes that make this call, even if they
+call the function concurrently. Thus, same error on different
+processes may not cause the same value of \fIerrorclass\fP to be
+returned. To reduce the potential for confusion, MPI_Add_error_string
+may be used on multiple processes to associate the same error string
+with the newly created \fIerrorclass\fP. Even though \fIerrorclass\fP
+may not be consistent across processes, using MPI_Add_error_string
+will ensure the error string associated with it will be the same
+everywhere.
+.sp
+No function is provided to free error classes, as it is not expected
+that an application will create them in significant numbers.
+.sp
+The value returned is always greater than or equal to MPI_ERR_LASTCODE.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Add_error_code
+MPI_Add_error_string
+MPI_Error_class
+MPI_Error_string
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_code.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_code.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_code.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Add_error_code 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Add_error_code\fP \- Creates a new error code associated
+with \fIerrorclass\fP
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Add_error_code(int \fIerrorclass\fP, int *\fIerrorcode\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ADD_ERROR_CODE(\fIERRORCLASS, ERRORCODE, IERROR\fP)
+	INTEGER \fI ERRORCLASS, ERRORCODE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::Add_error_code(int \fIerrorclass\fP, int* \fIerrorcode\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1.4i
+errorclass
+MPI error class (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.4i
+errorcode
+Error code returned by an MPI routine or an MPI error class (integer).
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+Creates a new error code associated with \fIerrorclass\fP and returns
+its value in \fIerrorcode\fP.
+
+.SH NOTES
+.ft R
+No function is provided to free error codes, as it is not expected
+that an application will create them in significant numbers.
+.sp
+The value returned is always greater than or equal to MPI_ERR_LASTCODE.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Add_error_class
+MPI_Error_class
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_string.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_string.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Add_error_string.3	(revision 97)
@@ -0,0 +1,78 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Add_error_string 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Add_error_string\fP \- Associates a string with an error code or class
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Add_error_string(int \fIerrorcode\fP, char *\fIstring\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ADD_ERROR_STRING(\fIERRORCODE, STRING, IERROR\fP)
+	INTEGER		\fIERRORCODE, IERROR\fP
+	CHARACTER*(*)	\fISTRING\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Add_error_string(int \fIerrorcode\fP, const char* \fIstring\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+errorcode
+MPI error class, or an error code returned by an MPI routine (integer).
+.ft R
+.TP 1.4i
+string
+Text that corresponds to the error code or class (string).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine associates an error string with an error code or
+class. Calling MPI_Add_error_string for an error code or class that
+already has an associated error string will replace the old string
+with the new one. It is erroneous to call MPI_Add_error_string for an
+error value not generated via MPI_Add_error_class or
+MPI_Add_error_code (e.g., an error code or class with a value not
+greater than MPI_LAST_ERRCODE).
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Add_error_class
+MPI_Add_error_code
+MPI_Error_class
+MPI_Error_string
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Address.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Address.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Address.3	(revision 97)
@@ -0,0 +1,84 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Address 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Address\fP \- Gets the address of a location in memory -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h> 
+int MPI_Address(void *\fIlocation\fP, MPI_Aint\fP *address\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ADDRESS(\fILOCATION\fP,\fI ADDRESS\fP,\fI IERROR\fP)		
+	<type>	\fILOCATION\fP (*) 		
+	INTEGER	\fIADDRESS\fP,\fI IERROR\fP
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+location
+Location in caller memory (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+address
+Address of location (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_get_address instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+The address of a location in memory can be found by invoking this function. Returns the (byte) address of location.
+.sp
+Example: Using MPI_Address for an array. 
+.sp
+.nf
+REAL A(100,100) 
+.br
+   INTEGER I1, I2, DIFF 
+.br
+   CALL MPI_ADDRESS(A(1,1), I1, IERROR) 
+.br
+   CALL MPI_ADDRESS(A(10,10), I2, IERROR) 
+.br
+   DIFF = I2 - I1 
+.br
+! The value of DIFF is 909*sizeofreal; the values of I1 and I2 are 
+.br
+! implementation dependent. 
+.fi
+
+.SH NOTES
+.ft R
+This routine is provided for both Fortran and C programmers and may be useful when writing portable code. In the current release, the address returned by this routine will be the same as that produced by the C & operator.
+.sp
+C users may be tempted to avoid using
+MPI_Address and rely on the availability of the address operator &.
+Note, however, that & cast-expression is a pointer, not an address.
+ANSI C does not require that the value of a pointer (or the pointer
+cast to int) be the absolute address of the object pointed at although 
+this is commonly the case. Furthermore, referencing may not have a unique
+definition on machines with a segmented address space. The use of
+MPI_Address to "reference" C variables guarantees portability to
+such machines as well.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgather.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgather.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgather.3	(revision 97)
@@ -0,0 +1,129 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Allgather 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Allgather\fP \- Gathers data from all processes and distributes it to all processes
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Allgather(void\fI *sendbuf\fP, int \fI sendcount\fP,
+	MPI_Datatype\fI sendtype\fP, void\fI *recvbuf\fP, int\fI recvcount\fP,
+	 MPI_Datatype\fI recvtype\fP, MPI_Comm\fI comm\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLGATHER(\fISENDBUF\fP,\fI SENDCOUNT\fP,\fI SENDTYPE\fP,\fI RECVBUF\fP,\fI RECVCOUNT\fP,\fI 
+		RECVTYPE\fP,\fI COMM\fP,\fI IERROR\fP) 
+	<type>	\fISENDBUF\fP (*), \fIRECVBUF\fP (*)
+	INTEGER	\fISENDCOUNT\fP,\fI SENDTYPE\fP,\fI RECVCOUNT\fP,\fI RECVTYPE\fP,\fI COMM\fP,
+	INTEGER	\fIIERROR\fP  
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Allgather(const void* \fIsendbuf\fP, int \fIsendcount\fP, const
+	MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP, int \fIrecvcount\fP,
+	const MPI::Datatype& \fIrecvtype\fP) const = 0
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf    
+Starting address of send buffer (choice).
+.TP 1i
+sendcount    
+Number of elements in send buffer (integer).
+.TP 1i
+sendtype    
+Datatype of send buffer elements (handle).
+.TP 1i
+recvcount    
+Number of elements received from any process (integer).
+.TP 1i
+recvtype    
+Datatype of receive buffer elements (handle).
+.TP 1i
+comm    
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf    
+Address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Allgather is similar to MPI_Gather, except that all processes receive the result, instead of just the root. In other words, all processes contribute to the result, and all processes receive the result.  
+.sp
+The type signature associated with sendcount, sendtype at a process must be equal to the type signature associated with recvcount, recvtype at any other process.
+.sp
+The outcome of a call to MPI_Allgather(\&...) is as if all processes executed n calls to     
+.sp
+.nf
+  MPI_Gather(sendbuf,sendcount,sendtype,recvbuf,recvcount,
+             recvtype,root,comm), 
+.sp
+.fi
+for root = 0 , ..., n-1. The rules for correct usage of MPI_Allgather are easily found from the corresponding rules for MPI_Gather.
+.sp
+\fBExample:\fR The all-gather version of Example 1 in MPI_Gather. Using  MPI_Allgather, we will gather 100 ints from every process in the group to every process.
+.sp
+.nf
+MPI_Comm comm; 
+    int gsize,sendarray[100]; 
+    int *rbuf; 
+    \&... 
+    MPI_Comm_size( comm, &gsize); 
+    rbuf = (int *)malloc(gsize*100*sizeof(int)); 
+    MPI_Allgather( sendarray, 100, MPI_INT, rbuf, 100, MPI_INT, comm); 
+.fi
+.sp
+After the call, every process has the group-wide concatenation of the sets of data. 
+
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform an all-gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of both \fIsendbuf\fR and \fIrecvbuf\fR.  In this case, \fIsendcount\fR and \fIsendtype\fR are ignored.  The input data of each process is assumed to be in the area where that process would receive its own contribution to the receive buffer.  Specifically, the outcome of a call to MPI_Allgather that used the in-place option is identical to the case in which all processes executed \fIn\fR calls to
+.sp
+.nf
+   MPI_GATHER ( MPI_IN_PLACE, 0, MPI_DATATYPE_NULL, recvbuf, 
+   recvcount, recvtype, root, comm )
+
+for root =0, ... , n-1.
+.fi 
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the gather operation occurs in two phases.  The data is gathered from all the members of the first group and received by all the members of the second group.  Then the data is gathered from all the members of the second group and received by all the members of the first.  The operation, however, need not be symmetric.  The number of items sent by the processes in first group need not be equal to the number of items sent by the the processes in the second group.  You can move data in only one direction by giving \fIsendcount\fR a value of 0 for communication in the reverse direction.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.sp  
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Allgatherv
+.br
+MPI_Gather
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgatherv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgatherv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allgatherv.3	(revision 97)
@@ -0,0 +1,117 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc. 
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Allgatherv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Allgatherv\fP \- Gathers data from all processes and delivers it to all. Each process may contribute a different amount of data.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Allgatherv(void\fI *sendbuf\fP, int\fI sendcount\fP,
+	MPI_Datatype\fI sendtype\fP, void\fI *recvbuf\fP, int\fI *recvcount\fP,
+	int\fI *displs\fP, MPI_Datatype\fI recvtype\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLGATHERV(\fISENDBUF\fP,\fI SENDCOUNT\fP, \fISENDTYPE\fP,\fI RECVBUF\fP,
+		\fIRECVCOUNT\fP,\fI DISPLS\fP, \fIRECVTYPE\fP,\fI COMM\fP,\fI IERROR\fP)
+	<type>	\fISENDBUF\fP(*), \fIRECVBUF\fP(*)
+	INTEGER	\fISENDCOUNT\fP,\fI SENDTYPE\fP, \fIRECVCOUNT\fP(*),
+	INTEGER	\fIDISPLS\fP(*),\fI RECVTYPE\fP,\fI COMM\fP,\fI IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Allgatherv(const void* \fIsendbuf\fP, int \fIsendcount\fP, 
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP,
+	const int \fIrecvcounts\fP[], const int \fIdispls\fP[],
+	const MPI::Datatype& \fIrecvtype\fP) const = 0
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf    
+Starting address of send buffer (choice).
+.TP 1i
+sendcount    
+Number of elements in send buffer (integer).
+.TP 1i
+sendtype    
+Datatype of send buffer elements (handle).
+.TP 1i
+recvcount    
+Integer array (of length group size) containing the number of elements that are received from each process.
+.TP 1i
+displs    
+Integer array (of length group size). Entry i specifies the displacement (relative to recvbuf) at which to place the incoming data from process i.
+.TP 1i
+recvtype    
+Datatype of receive buffer elements (handle).
+.TP 1i
+comm    
+Communicator (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf    
+Address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Allgatherv is similar to MPI_Allgather in that all processes gather data from all other processes, except that each process can send a different amount of data. The block of data sent from the jth process is received by every process and placed in the jth block of the buffer 
+.I recvbuf.
+.sp
+The type signature associated with sendcount, sendtype, at process j must be equal to the type signature associated with recvcounts[j], recvtype at any other process. 
+.sp
+The outcome is as if all processes executed calls to      
+.nf
+MPI_Gatherv(sendbuf,sendcount,sendtype,recvbuf,recvcount,
+            displs,recvtype,root,comm)
+.fi
+.sp
+for root = 0 , ..., n-1. The rules for correct usage of MPI_Allgatherv are easily found from the corresponding rules for MPI_Gatherv. 
+
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform an all-gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of both \fIsendbuf\fR and \fIrecvbuf\fR.  In this case, \fIsendcount\fR and \fIsendtype\fR are ignored.  The input data of each process is assumed to be in the area where that process would receive its own contribution to the receive buffer.  Specifically, the outcome of a call to MPI_Allgather that used the in-place option is identical to the case in which all processes executed \fIn\fR calls to
+.sp
+.nf
+   MPI_GATHERV ( MPI_IN_PLACE, 0, MPI_DATATYPE_NULL, recvbuf, 
+   recvcounts, displs, recvtype, root, comm )
+
+for root =0, ... , n-1.
+.fi 
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the gather operation occurs in two phases.  The data is gathered from all the members of the first group, concatenated, and received by all the members of the second group.  Then the data is gathered from all the members of the second group, concatenated, and received by all the members of the first.  The send buffer arguments in the one group must be consistent with the receive buffer arguments in the other group, and vice versa.  The operation must exhibit symmetric, full-duplex behavior.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.sp  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Gatherv
+.br
+MPI_Allgather
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alloc_mem.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alloc_mem.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alloc_mem.3	(revision 97)
@@ -0,0 +1,94 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Alloc_mem 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Alloc_mem \fP \- Allocates a specified memory segment. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Alloc_mem(MPI_Aint \fIsize\fP, MPI_Info \fIinfo\fP, void *\fIbaseptr\fP)
+
+.SH Fortran Syntax (see FORTRAN NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLOC_MEM(\fISIZE, INFO, BASEPTR, IERROR\fP) 
+	INTEGER \fIINFO, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fISIZE, BASEPTR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void* MPI::Alloc_mem(MPI::Aint \fIsize\fP, const MPI::Info& \fIinfo\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Size of memory segment in bytes (nonnegative integer). 
+.ft R
+.TP 1i
+info
+Info argument (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+baseptr
+Pointer to beginning of memory segment allocated. 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Alloc_mem allocates \fIsize\fP bytes of memory. The starting address
+of this memory is returned in the variable \fIbase\fP. 
+.sp
+
+.SH FORTRAN NOTES
+.ft R
+There is no portable FORTRAN 77 syntax for using MPI_Alloc_mem.
+There is no portable Fortran syntax for using pointers returned
+from MPI_Alloc_mem. However, MPI_Alloc_mem can be used with Sun 
+Fortran compilers.
+.sp
+From FORTRAN 77, you can use the following non-standard 
+declarations for the SIZE and BASEPTR arguments:
+.nf
+           INCLUDE "mpif.h"
+           INTEGER*MPI_ADDRESS_KIND SIZE, BASEPTR
+.fi
+.sp
+From either FORTRAN 77 or Fortran 90, you can use "Cray pointers" 
+for the BASEPTR argument. Cray pointers are described further in 
+the Fortran User's Guide and are supported by many Fortran compilers.  
+For example, 
+.sp
+.nf
+           INCLUDE "mpif.h"
+           REAL*4 A(100,100)
+           POINTER (BASEPTR, A)
+           INTEGER*MPI_ADDRESS_KIND SIZE
+
+           SIZE = 4 * 100 * 100
+           CALL MPI_ALLOC_MEM(SIZE,MPI_INFO_NULL,BASEPTR,IERR)
+
+           ! use A
+
+           CALL MPI_FREE_MEM(A, IERR)
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Free_mem
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allreduce.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allreduce.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Allreduce.3	(revision 97)
@@ -0,0 +1,143 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Allreduce 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Allreduce\fP \- Combines values from all processes and distributes the result back to all processes.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Allreduce(void \fI*sendbuf\fP, void \fI*recvbuf\fP, int\fI count\fP,
+	MPI_Datatype\fI datatype\fP, MPI_Op\fI op\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLREDUCE(\fISENDBUF\fP,\fI RECVBUF\fP, \fICOUNT\fP,\fI DATATYPE\fP,\fI OP\fP,
+		\fICOMM\fP, \fIIERROR\fP)
+	<type>	\fISENDBUF\fP(*), \fIRECVBUF\fP(*)
+	INTEGER	\fICOUNT\fP,\fI DATATYPE\fP,\fI OP\fP,\fI COMM\fP,\fI IERROR 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Allreduce(const void* \fIsendbuf\fP, void* \fIrecvbuf\fP, 
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, const 
+	MPI::Op& \fIop\fP) const=0
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Starting address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Datatype of elements of send buffer (handle).
+.TP 1i
+op
+Operation (handle).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Starting address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Same as MPI_Reduce except that the result appears in the receive buffer of all the group members. 
+.sp
+\fBExample 1:\fR A routine that computes the product of a vector and an array that are distributed across a group of processes and returns the answer at all nodes (compare with Example 2, with MPI_Reduce, below).
+.sp
+.nf
+SUBROUTINE PAR_BLAS2(m, n, a, b, c, comm) 
+REAL a(m), b(m,n)    ! local slice of array 
+REAL c(n)            ! result 
+REAL sum(n) 
+INTEGER n, comm, i, j, ierr 
+ 
+! local sum 
+DO j= 1, n 
+  sum(j) = 0.0 
+  DO i = 1, m 
+    sum(j) = sum(j) + a(i)*b(i,j) 
+  END DO 
+END DO 
+ 
+! global sum 
+CALL MPI_ALLREDUCE(sum, c, n, MPI_REAL, MPI_SUM, comm, ierr) 
+ 
+! return result at all nodes 
+RETURN
+.fi
+.sp
+\fBExample 2:\fR A routine that computes the product of a vector and an array that are distributed across a group of processes and returns the answer at node zero.
+.sp
+.nf
+SUBROUTINE PAR_BLAS2(m, n, a, b, c, comm) 
+REAL a(m), b(m,n)    ! local slice of array 
+REAL c(n)            ! result 
+REAL sum(n) 
+INTEGER n, comm, i, j, ierr 
+ 
+! local sum 
+DO j= 1, n 
+  sum(j) = 0.0 
+  DO i = 1, m 
+    sum(j) = sum(j) + a(i)*b(i,j) 
+  END DO 
+END DO 
+
+! global sum 
+CALL MPI_REDUCE(sum, c, n, MPI_REAL, MPI_SUM, 0, comm, ierr) 
+ 
+! return result at node zero (and garbage at the other nodes) 
+RETURN
+.fi
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform an all-reduce operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of \fIsendbuf\fR at all processes. 
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+When the communicator is an inter-communicator, the reduce operation occurs in two phases.  The data is reduced from all the members of the first group and received by all the members of the second group.  Then the data is reduced from all the members of the second group and received by all the members of the first.  The operation exhibits a symmetric, full-duplex behavior.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.SH NOTES ON COLLECTIVE OPERATIONS
+
+The reduction functions (
+.I MPI_Op
+) do not return an error value.  As a result,
+if the functions detect an error, all they can do is either call 
+.I MPI_Abort
+or silently skip the problem.  Thus, if you change the error handler from
+.I MPI_ERRORS_ARE_FATAL
+to something else, for example, 
+.I MPI_ERRORS_RETURN
+,
+then no error may be indicated.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoall.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoall.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoall.3	(revision 97)
@@ -0,0 +1,130 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Alltoall 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Alltoall\fP \- All processes send data to all processes 
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Alltoall(void *\fIsendbuf\fP, int \fIsendcount\fP,
+	MPI_Datatype \fIsendtype\fP, void *\fIrecvbuf\fP, int \fIrecvcount\fP,
+	MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLTOALL(\fISENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
+	RECVTYPE, COMM, IERROR\fP)
+
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE\fP
+	INTEGER	\fICOMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Alltoall(const void* \fIsendbuf\fP, int \fIsendcount\fP,
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP, 
+	int \fIrecvcount\fP, const MPI::Datatype& \fIrecvtype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.2i
+sendbuf
+Starting address of send buffer (choice).
+.TP 1.2i
+sendcount
+Number of elements to send to each process (integer).
+.TP 1.2i
+sendtype
+Datatype of send buffer elements (handle).
+.TP 1.2i
+recvcount
+Number of elements to receive from each process (integer).
+.TP 1.2i
+recvtype
+Datatype of receive buffer elements (handle).
+.TP 1.2i
+comm
+Communicator over which data is to be exchanged (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.2i
+recvbuf
+Starting address of receive buffer (choice).
+.ft R
+.TP 1.2i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Alltoall is a collective operation in which all processes send the same amount of data to each other, and receive the same amount of data from each other. The operation of this routine can be represented as follows, where each process performs 2n (n being the number of processes in communicator \fIcomm\fP) independent point-to-point communications (including communication with itself).
+.sp
+.nf
+	MPI_Comm_size(\fIcomm\fP, &n);
+	for (i = 0, i < n; i++)
+	    MPI_Send(\fIsendbuf\fP + i * \fIsendcount\fP * extent(\fIsendtype\fP),
+	        \fIsendcount\fP, \fIsendtype\fP, i, ..., \fIcomm\fP);
+	for (i = 0, i < n; i++)
+	    MPI_Recv(\fIrecvbuf\fP + i * \fIrecvcount\fP * extent(\fIrecvtype\fP),
+	        \fIrecvcount\fP, \fIrecvtype\fP, i, ..., \fIcomm\fP);
+.fi
+.sp
+Each process breaks up its local \fIsendbuf\fP into n blocks \- each
+containing \fIsendcount\fP elements of type \fIsendtype\fP \- and
+divides its \fIrecvbuf\fP similarly according to \fIrecvcount\fP and
+\fIrecvtype\fP. Process j sends the k-th block of its local
+\fIsendbuf\fP to process k, which places the data in the j-th block of
+its local \fIrecvbuf\fP. The amount of data sent must be equal to the
+amount of data received, pairwise, between every pair of processes.
+
+WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the gather operation occurs in two phases.  The data is gathered from all the members of the first group and received by all the members of the second group.  Then the data is gathered from all the members of the second group and received by all the members of the first.  The operation exhibits a symmetric, full-duplex behavior.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.sp  
+.SH NOTES
+.ft R
+The MPI_IN_PLACE option is not available for this function.
+.sp
+All arguments on all processes are significant. The \fIcomm\fP argument,
+in particular, must describe the same communicator on all processes.
+.sp
+There are two MPI library functions that are more general than
+MPI_Alltoall. MPI_Alltoallv allows all-to-all communication to and
+from buffers that need not be contiguous; different processes may
+send and receive different amounts of data. MPI_Alltoallw expands
+MPI_Alltoallv's functionality to allow the exchange of data with
+different datatypes.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Alltoallv
+MPI_Alltoallw
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallv.3	(revision 97)
@@ -0,0 +1,160 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Alltoallv 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Alltoallv\fP \- All processes send different amount of data to, and receive different amount of data from, all processes
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Alltoallv(void *\fIsendbuf\fP, int *\fIsendcounts\fP,
+	int *\fIsdispls\fP, MPI_Datatype \fIsendtype\fP,
+	void *\fIrecvbuf\fP, int\fI *recvcounts\fP,
+	int *\fIrdispls\fP, MPI_Datatype \fIrecvtype\fP, MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+
+MPI_ALLTOALLV(\fISENDBUF, SENDCOUNTS, SDISPLS, SENDTYPE,
+	RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPE, COMM, IERROR\fP)
+
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNTS(*), SDISPLS(*), SENDTYPE\fP
+	INTEGER	\fIRECVCOUNTS(*), RDISPLS(*), RECVTYPE\fP
+	INTEGER	\fICOMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Alltoallv(const void* \fIsendbuf\fP,
+	const int \fIsendcounts\fP[], const int \fIdispls\fP[],
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP,
+	const int \fIrecvcounts\fP[], const int \fIrdispls\fP[],
+	const MPI::Datatype& \fIrecvtype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.2i
+sendbuf
+Starting address of send buffer.
+.TP 1.2i
+sendcounts
+Integer array, where entry i specifies the number of elements to send
+to rank i.
+.TP 1.2i
+sdispls
+Integer array, where entry i specifies the displacement (offset from
+\fIsendbuf\fP, in units of \fIsendtype\fP) from which to send data to
+rank i.
+.TP 1.2i
+sendtype
+Datatype of send buffer elements.
+.TP 1.2i
+recvcounts
+Integer array, where entry j specifies the number of elements to
+receive from rank j.
+.TP 1.2i
+rdispls
+Integer array, where entry j specifies the displacement (offset from
+\fIrecvbuf\fP, in units of \fIrecvtype\fP) to which data from rank j
+should be written.
+.TP 1.2i
+recvtype
+Datatype of receive buffer elements.
+.TP 1.2i
+comm
+Communicator over which data is to be exchanged.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.2i
+recvbuf
+Address of receive buffer.
+.ft R
+.TP 1.2i
+IERROR
+Fortran only: Error status.
+
+.SH DESCRIPTION
+.ft R
+MPI_Alltoallv is a generalized collective operation in which all
+processes send data to and receive data from all other processes. It
+adds flexibility to MPI_Alltoall by allowing the user to specify data
+to send and receive vector-style (via a displacement and element
+count). The operation of this routine can be thought of as follows,
+where each process performs 2n (n being the number of processes in
+communicator \fIcomm\fP) independent point-to-point communications
+(including communication with itself).
+.sp
+.nf
+	MPI_Comm_size(\fIcomm\fP, &n);
+	for (i = 0, i < n; i++)
+	    MPI_Send(\fIsendbuf\fP + \fIsdispls\fP[i] * extent(\fIsendtype\fP),
+	        \fIsendcounts\fP[i], \fIsendtype\fP, i, ..., \fIcomm\fP);
+	for (i = 0, i < n; i++)
+	    MPI_Recv(\fIrecvbuf\fP + \fIrdispls\fP[i] * extent(\fIrecvtype\fP),
+	        \fIrecvcounts\fP[i], \fIrecvtype\fP, i, ..., \fIcomm\fP);
+.fi
+.sp
+Process j sends the k-th block of its local \fIsendbuf\fP to process
+k, which places the data in the j-th block of its local
+\fIrecvbuf\fP. 
+.sp
+When a pair of processes exchanges data, each may pass different
+element count and datatype arguments so long as the sender specifies
+the same amount of data to send (in bytes) as the receiver expects
+to receive.
+.sp
+Note that process i may send a different amount of data to process j
+than it receives from process j. Also, a process may send entirely
+different amounts of data to different processes in the communicator.
+
+.sp
+WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the gather operation occurs in two phases.  The data is gathered from all the members of the first group and received by all the members of the second group.  Then the data is gathered from all the members of the second group and received by all the members of the first.  The operation exhibits a symmetric, full-duplex behavior.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.sp  
+.SH NOTES
+.ft R
+The MPI_IN_PLACE option is not available for any form of all-to-all
+communication.
+.sp
+The specification of counts and displacements should not cause
+any location to be written more than once.
+.sp
+All arguments on all processes are significant. The \fIcomm\fP argument,
+in particular, must describe the same communicator on all processes.
+.sp
+The offsets of \fIsdispls\fP and \fIrdispls\fP are measured in units
+of \fIsendtype\fP and \fIrecvtype\fP, respectively. Compare this to
+MPI_Alltoallw, where these offsets are measured in bytes.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Alltoall
+MPI_Alltoallw
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallw.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallw.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Alltoallw.3	(revision 97)
@@ -0,0 +1,161 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Alltoallw 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Alltoallw\fP \- All processes send data of different types to, and receive data of different types from, all processes
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Alltoallw(void *\fIsendbuf\fP, int *\fIsendcounts\fP,
+	int *\fIsdispls\fP, MPI_Datatype *\fIsendtypes\fP,
+	void *\fIrecvbuf\fP, int *\fIrecvcounts\fP,
+	int *\fIrdispls\fP, MPI_Datatype *\fIrecvtypes\fP, MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ALLTOALLW(\fISENDBUF, SENDCOUNTS, SDISPLS, SENDTYPES,
+	RECVBUF, RECVCOUNTS, RDISPLS, RECVTYPES, COMM, IERROR\fP)
+
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNTS(*), SDISPLS(*), SENDTYPES(*)\fP
+	INTEGER	\fIRECVCOUNTS(*), RDISPLS(*), RECVTYPES(*)\fP
+	INTEGER	\fICOMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Alltoallw(const void* \fIsendbuf\fP,
+	const int \fIsendcounts\fP[], const int \fIsdispls\fP[],
+	const MPI::Datatype \fIsendtypes\fP[], void* \fIrecvbuf\fP,
+	const int \fIrecvcounts\fP[], const int \fIrdispls\fP[],
+	const MPI::Datatype \fIrecvtypes\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.2i
+sendbuf
+Starting address of send buffer.
+.TP 1.2i
+sendcounts
+Integer array, where entry i specifies the number of elements to send
+to rank i.
+.TP 1.2i
+sdispls
+Integer array, where entry i specifies the displacement (in bytes,
+offset from \fIsendbuf\fP) from which to send data to rank i.
+.TP 1.2i
+sendtypes
+Datatype array, where entry i specifies the datatype to use when
+sending data to rank i.
+.TP 1.2i
+recvcounts
+Integer array, where entry j specifies the number of elements to
+receive from rank j.
+.TP 1.2i
+rdispls
+Integer array, where entry j specifies the displacement (in bytes,
+offset from \fIrecvbuf\fP) to which data from rank j should
+be written.
+.TP 1.2i
+recvtypes
+Datatype array, where entry j specifies the datatype to use when
+receiving data from rank j.
+.TP 1.2i
+comm
+Communicator over which data is to be exchanged.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.2i
+recvbuf
+Address of receive buffer.
+.ft R
+.TP 1.2i
+IERROR
+Fortran only: Error status.
+
+.SH DESCRIPTION
+.ft R
+MPI_Alltoallw is a generalized collective operation in which all
+processes send data to and receive data from all other processes. It
+adds flexibility to MPI_Alltoallv by allowing the user to specify the
+datatype of individual data blocks (in addition to displacement and
+element count). Its operation can be thought of in the following way,
+where each process performs 2n (n being the number of processes in
+communicator \fIcomm\fP) independent point-to-point communications
+(including communication with itself).
+.sp
+.nf
+	MPI_Comm_size(\fIcomm\fP, &n);
+	for (i = 0, i < n; i++)
+	    MPI_Send(\fIsendbuf\fP + \fIsdispls\fP[i], \fIsendcounts\fP[i],
+	        \fIsendtypes\fP[i], i, ..., \fIcomm\fP);
+	for (i = 0, i < n; i++)
+	    MPI_Recv(\fIrecvbuf\fP + \fIrdispls\fP[i], \fIrecvcounts\fP[i],
+	        \fIrecvtypes\fP[i], i, ..., \fIcomm\fP);
+.fi
+.sp
+Process j sends the k-th block of its local \fIsendbuf\fP to process
+k, which places the data in the j-th block of its local
+\fIrecvbuf\fP.
+.sp
+When a pair of processes exchanges data, each may pass different
+element count and datatype arguments so long as the sender specifies
+the same amount of data to send (in bytes) as the receiver expects
+to receive.
+.sp
+Note that process i may send a different amount of data to process j
+than it receives from process j. Also, a process may send entirely
+different amounts and types of data to different processes in the
+communicator.
+
+WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the gather operation occurs in two phases.  The data is gathered from all the members of the first group and received by all the members of the second group.  Then the data is gathered from all the members of the second group and received by all the members of the first.  The operation exhibits a symmetric, full-duplex behavior.  
+.sp
+The first group defines the root process.  The root process uses MPI_ROOT as the value of \fIroot\fR.  All other processes in the first group use MPI_PROC_NULL as the value of \fIroot\fR.  All processes in the second group use the rank of the root process in the first group as the value of \fIroot\fR.
+.sp
+When the communicator is an intra-communicator, these groups are the same, and the operation occurs in a single phase.
+.sp  
+.SH NOTES
+.ft R
+The MPI_IN_PLACE option is not available for any form of all-to-all
+communication.
+.sp
+The specification of counts, types, and displacements should not cause
+any location to be written more than once.
+.sp
+All arguments on all processes are significant. The \fIcomm\fP argument,
+in particular, must describe the same communicator on all processes.
+.sp
+The offsets of \fIsdispls\fP and \fIrdispls\fP are measured in bytes.
+Compare this to MPI_Alltoallv, where these offsets are measured in units
+of \fIsendtype\fP and \fIrecvtype\fP, respectively.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Alltoall
+MPI_Alltoallv
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_delete.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_delete.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_delete.3	(revision 97)
@@ -0,0 +1,52 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Attr_delete 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Attr_delete\fP \- Deletes attribute value associated with a key -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Attr_delete(MPI_Comm\fI comm\fP, int\fI keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ATTR_DELETE(\fICOMM\fP,\fI KEYVAL\fP, \fIIERROR\fP)			
+	INTEGER	\fICOMM\fP,\fI KEYVAL\fP,\fI IERROR\fP
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator to which attribute is attached (handle).
+.TP 1i
+keyval
+The key value of the deleted attribute (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+This deprecated routine is not available in C++. 
+.sp
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_delete_attr. 
+.sp
+Delete attribute from cache by key. This function invokes the attribute delete function delete_fn specified when the keyval was created. The call will fail if the delete_fn function returns an error code other than MPI_SUCCESS.  
+
+Whenever a communicator is replicated using the function MPI_Comm_dup, all callback copy functions for attributes that are currently set are invoked (in arbitrary order). Whenever a communicator is deleted using the function MPI_Comm_free, all callback delete functions for attributes that are currently set are invoked. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_get.3	(revision 97)
@@ -0,0 +1,65 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Attr_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Attr_get\fP \- Retrieves attribute value by key -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Attr_get(MPI_Comm \fIcomm\fP, int\fI keyval\fP,void\fI *attribute_val\fP,
+	int\fI *flag \fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ATTR_GET(\fICOMM\fP,\fI KEYVAL\fP, \fIATTRIBUTE_VAL\fP,\fI FLAG\fP,\fI IERROR\fP)
+	INTEGER	\fICOMM\fP,\fI KEYVAL\fP, \fIATTRIBUTE_VAL\fP,\fI IERROR\fP
+	LOGICAL	\fIFLAG\fP
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator to which attribute is attached (handle).
+.TP 1i
+keyval
+ Key value (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+attribute_val
+Attribute value, unless flag = false.
+.TP 1i
+flag
+True if an attribute value was extracted; false if no attribute is associated with the key.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_get_attr instead.
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Retrieves attribute value by key. The call is erroneous if there is no key
+with value keyval. On the other hand, the call is correct if the key value exists, but no attribute is attached on comm for that key; in such case, the call returns flag = false. In particular MPI_KEYVAL_INVALID is an erroneous key value.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+.SH SEE ALSO
+
+MPI_Comm_get_attr
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_put.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_put.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Attr_put.3	(revision 97)
@@ -0,0 +1,67 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Attr_put 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Attr_put\fP \- Stores attribute value associated with a key -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Attr_put(MPI_Comm \fIcomm\fP, int\fI keyval\fP, void\fI *attribute_val\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ATTR_PUT(\fICOMM\fP,\fI KEYVAL\fP, \fIATTRIBUTE_VAL\fP,\fI IERROR\fP)
+	INTEGER	\fICOMM\fP,\fI KEYVAL\fP,\fI ATTRIBUTE_VAL\fP,\fI IERROR
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator to which attribute will be attached (handle).
+.TP 1i
+keyval
+Key value, as returned by MPI_KEYVAL_CREATE (integer).
+.TP 1i
+attribute_val
+Attribute value.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_set_attr instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+MPI_Attr_put stores the stipulated attribute value attribute_val for subsequent retrieval by MPI_Attr_get. If the value is already present, then the outcome is as if MPI_Attr_delete was first called to delete the previous value (and the callback function delete_fn was executed), and a new value was next stored. The call is erroneous if there is no key with value keyval; in particular MPI_KEYVAL_INVALID is an erroneous key value. The call will fail if the delete_fn function returned an error code other than MPI_SUCCESS.
+
+.SH NOTES
+.ft R
+Values of the permanent attributes MPI_TAG_UB, MPI_HOST,
+MPI_IO, and MPI_WTIME_IS_GLOBAL may not be changed.
+.sp
+The type of the attribute value depends on whether C or Fortran is being used. In C, an attribute value is a pointer (void *); in Fortran, it is a single integer (not a pointer, since Fortran has no pointers and there are systems for which a pointer does not fit in an integer, e.g., any  32-bit address system that uses 64 bits for Fortran DOUBLE PRECISION).
+.sp
+If an attribute is already present, the delete function (specified when the corresponding keyval was created) will be called.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
+may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_attr
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Barrier.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Barrier.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Barrier.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Barrier 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Barrier\fP \- Blocks until all processes have reached this routine.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Barrier(MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BARRIER(\fICOMM\fP,\fI IERROR\fP)
+	INTEGER	\fICOMM\fP,\fI IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Barrier() const = 0
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Blocks the caller until all group members have called it; the call returns at any process only after all group members have entered the call.
+
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the barrier operation is performed across all processes in both groups.  All processes in the first group may exit the barrier when all processes in the second group have entered the barrier.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Bcast
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bcast.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bcast.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bcast.3	(revision 97)
@@ -0,0 +1,84 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Bcast 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Bcast\fP \- Broadcasts a message from the process with rank \fIroot\fP to all other processes of the group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Bcast(void \fI*buffer\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI root\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BCAST(\fIBUFFER\fP,\fI COUNT\fP, \fIDATATYPE\fP,\fI ROOT\fP,\fI COMM\fP,\fI IERROR\fP)
+	<type>	\fIBUFFER\fP(*)
+	INTEGER	\fICOUNT\fP,\fI DATATYPE\fP,\fI ROOT\fP,\fI COMM\fP,\fI IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Bcast(void* \fIbuffer\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, int \fIroot\fP) const = 0
+
+.SH INPUT/OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buffer
+Starting address of buffer (choice).
+.TP 1i
+count
+Number of entries in buffer (integer).
+.TP 1i
+datatype
+Data type of buffer (handle).
+.TP 1i
+root
+Rank of broadcast root (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Bcast broadcasts a message from the process with rank root to all processes of the group, itself included. It is called by all members of group using the same arguments for comm, root. On return, the contents of root's communication buffer has been copied to all processes.   
+.sp
+General, derived datatypes are allowed for datatype. The type signature of count, datatype on any process must be equal to the type signature of count, datatype at the root. This implies that the amount of data sent must be equal to the amount received, pairwise between each process and the root. MPI_Bcast and all other data-movement collective routines make this restriction. Distinct type maps between sender and receiver are still allowed. 
+.sp
+\fBExample:\fR Broadcast 100 ints from process 0 to every process in the group.
+.nf
+    MPI_Comm comm; 
+    int array[100]; 
+    int root=0; 
+    \&... 
+    MPI_Bcast( array, 100, MPI_INT, root, comm); 
+.fi
+.sp
+As in many of our sample code fragments, we assume that some of the variables (such as comm in the example above) have been assigned appropriate values.
+.sp
+WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group broadcasts data to all the processes in the second group.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.   The receive buffer arguments of the processes in the second group must be consistent with the send buffer argument of the root process in the first group.
+.sp  
+.SH NOTES
+This function does not support the in-place option.
+.sp
+
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend.3	(revision 97)
@@ -0,0 +1,104 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Bsend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Bsend\fP \- Basic send with user-specified buffering.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Bsend(void \fI*buf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BSEND(\fIBUF\fP,\fI COUNT\fP,\fIDATATYPE\fP,\fI DEST\fP,\fI TAG\fP,\fI COMM\fP,\fI IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT\fP,\fI DATATYPE\fP,\fI DEST\fP,\fI TAG\fP,\fI COMM\fP,\fI IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Bsend(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of entries in send buffer (nonnegative integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Bsend performs a buffered-mode, blocking send.
+
+.SH NOTES
+.ft R
+This send is provided as a convenience function; it allows the user to send messages without worrying about where they are buffered (because the user must have provided buffer space with MPI_Buffer_attach).
+.sp
+In deciding how much buffer space to allocate, remember that the buffer space
+is not available for reuse by subsequent \fIMPI_Bsend\fPs unless you are certain
+that the message
+has been received (not just that it should have been received).  For example,
+this code does not allocate enough buffer space:
+.nf
+
+    MPI_Buffer_attach( b, n*sizeof(double) + MPI_BSEND_OVERHEAD );
+    for (i=0; i<m; i++) {
+        MPI_Bsend( buf, n, MPI_DOUBLE, ... );
+    }
+
+.fi
+because only enough buffer space is provided for a single send, and the
+loop may start a second 
+.I MPI_Bsend
+before the first is done making use of the
+buffer.
+
+In C, you can
+force the messages to be delivered by
+MPI_Buffer_detach( &b, &n );
+MPI_Buffer_attach( b, n );
+(The 
+.I MPI_Buffer_detach
+will not complete until all buffered messages are
+delivered.)
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Buffer_attach
+MPI_Ibsend
+MPI_Bsend_init
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend_init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend_init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Bsend_init.3	(revision 97)
@@ -0,0 +1,82 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Bsend_init 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Bsend_init\fP \- Builds a handle for a buffered send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Bsend_init(void \fI*buf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BSEND_INIT(\fIBUF\fP,\fI COUNT\fP, \fIDATATYPE\fP,\fI DEST\fP,\fI TAG\fP,\fI COMM\fP,\fI REQUEST\fP,
+		\fIIERROR\fP)
+	<type>	\fIBUF\fP(\fI*\fP)
+	INTEGER	\fICOUNT\fP,\fI DATATYPE\fP, \fIDEST\fP,\fI TAG\fP,
+	INTEGER	\fICOMM\fP,\fI REQUEST\fP,\fI IERROR 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Prequest Comm::Bsend_init(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements sent (integer).
+.TP 1i
+datatype
+Type of each element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Creates a persistent communication request for a buffered mode send, and binds to it all the arguments of a send operation. 
+.sp
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Send_init
+MPI_Ssend_init
+MPI_Rsend_init
+MPI_Recv_init
+MPI_Start
+MPI_Startall
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_attach.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_attach.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_attach.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Buffer_attach 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Buffer_attach\fP \- Attaches a user-defined buffer for sending.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Buffer_attach(void \fI*buf\fP, int\fI size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BUFFER_ATTACH(\fIBUF\fP,\fI SIZE\fP, \fIIERROR\fP)
+	<type>	\fIBUF\fP(\fI*\fP)
+	INTEGER	\fISIZE\fP,\fI IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Attach_buffer(void* \fIbuffer\fP, int \fIsize\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial buffer address (choice).
+.TP 1i
+size
+Buffer size, in bytes (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Provides to MPI a buffer in the user's memory to be used for buffering outgoing messages. The buffer is used only by messages sent in buffered mode. Only one buffer can be attached to a process at a time. 
+
+.SH NOTES
+.ft R
+The size given should be the sum of the sizes of all outstanding Bsends that you intend to have, plus MPI_BSEND_OVERHEAD bytes for each Bsend that you do. For the purposes of calculating size, you should use MPI_Pack_size. In other words, in the code
+.sp
+.nf
+    MPI_Buffer_attach( buf, size );
+    MPI_Bsend( \&..., count=20, datatype=type1, \&... );
+    \&...
+    MPI_Bsend( \&..., count=40, datatype=type2, \&... );
+.fi
+.sp
+the value of size in the MPI_Buffer_attach call should be greater than the value computed by
+.sp
+.nf
+    MPI_Pack_size( 20, type1, comm, &s1 );
+    MPI_Pack_size( 40, type2, comm, &s2 );
+    size = s1 + s2 + 2 * MPI_BSEND_OVERHEAD;
+.fi
+.sp
+MPI_BSEND_OVERHEAD gives the maximum amount of buffer space that may be used by the Bsend routines. This value is in mpi.h for C and mpif.h for Fortran.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Buffer_detach
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_detach.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_detach.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Buffer_detach.3	(revision 97)
@@ -0,0 +1,93 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Buffer_detach 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Buffer_detach\fP \- Removes an existing buffer (for use in MPI_Bsend, etc.)
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Buffer_detach(void \fI*buf\fP, int\fI *size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_BUFFER_DETACH(\fIBUF\fP,\fI SIZE\fP, \fIIERROR\fP)
+	<type>	\fIBUF\fP(\fI*\fP)
+	INTEGER	\fISIZE\fP,\fI IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Detach_buffer(void*& \fIbuffer\fP)
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial buffer address (choice).
+.TP 1i
+size
+Buffer size, in bytes (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Detach the buffer currently associated with MPI. The call returns the address and the size of the detached buffer. This operation will block until all messages currently in the buffer have been transmitted. Upon return of this function, the user may reuse or deallocate the space taken by the buffer. 
+.sp
+\fBExample:\fP Calls to attach and detach buffers.
+.sp
+.nf
+    #define BUFFSIZE 10000 
+    int size 
+    char *buff; 
+    MPI_Buffer_attach( malloc(BUFFSIZE), BUFFSIZE); 
+    /* a buffer of 10000 bytes can now be used by MPI_Bsend */ 
+    MPI_Buffer_detach( &buff, &size); 
+    /* Buffer size reduced to zero */ 
+    MPI_Buffer_attach( buff, size); 
+    /* Buffer of 10000 bytes available again */ 
+.fi
+
+.SH NOTES
+.ft R
+The reason that MPI_Buffer_detach returns the address and size of the buffer being detached is to allow nested libraries to replace and restore the buffer. For example, consider
+.sp
+.nf
+    int size, mysize, idummy;
+    void *ptr, *myptr, *dummy;
+    MPI_Buffer_detach( &ptr, &size );
+    MPI_Buffer_attach( myptr, mysize );
+    \&...
+    \&... library code \&...
+    \&...
+    MPI_Buffer_detach( &dummy, &idummy );
+    MPI_Buffer_attach( ptr, size );
+.fi
+.sp
+This is much like the action of the UNIX signal routine and has the same strengths (it's simple) and weaknesses (it only works for nested usages).
+.sp
+\fBFor Fortran:\fP The Fortran binding for this routine is different. Because Fortran does not have pointers, it is impossible to provide a way to use the output of this routine to exchange buffers. In this case, only the size field is set.
+.sp
+\fBFor C:\fP Even though the buf argument is declared as void, it is really the address of a void pointer. See Rationale, below, for more details.
+.sp
+Even though the C functions MPI_Buffer_attach and
+MPI_Buffer_detach both have a first argument of type void*, these arguments are used differently: A pointer to the buffer is passed to MPI_Buffer_attach; the address of the pointer is passed to MPI_Buffer_detach, so that this call can return the pointer value.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Buffer_attach
+MPI_Bsend
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cancel.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cancel.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cancel.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cancel 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cancel\fP \- Cancels a communication request.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cancel(MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CANCEL(\fIREQUEST\fP, \fIIERROR\fP)
+	INTEGER	\fIREQUEST\fP, \fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Request::Cancel() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+request
+Communication request (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The MPI_Cancel operation allows pending communications to be canceled. This is required for cleanup. Posting a send or a receive ties up user resources (send or receive buffers), and a cancel may be needed to free these resources gracefully. 
+.sp
+A call to MPI_Cancel marks for cancellation a pending, nonblocking communication operation (send or receive). The cancel call is local. It returns immediately, possibly before the communication is actually canceled. It is still necessary to complete a communication that has been marked for cancellation, using a call to MPI_Request_free, MPI_Wait, or MPI_Test (or any of the derived operations).  
+.sp
+If a communication is marked for cancellation, then an MPI_Wait call for that communication is guaranteed to return, irrespective of the activities of other processes (i.e., MPI_Wait behaves as a local function); similarly if MPI_Test is repeatedly called in a busy wait loop for a canceled communication, then MPI_Test will eventually be successful.
+.sp
+MPI_Cancel can be used to cancel a communication that uses a persistent request (see Section 3.9 in the MPI-1 Standard, "Persistent Communication Requests") in the same way it is used for nonpersistent requests. A successful cancellation cancels the active communication, but not the request itself. After the call to MPI_Cancel and the subsequent call to MPI_Wait or MPI_Test, the request becomes inactive and can be activated for a new communication.  
+.sp
+The successful cancellation of a buffered send frees the buffer space occupied by the pending message.  
+.sp
+Either the cancellation succeeds or the communication succeeds, but not both. If a send is marked for cancellation, then it must be the case that either the send completes normally, in which case the message sent is received at the destination process, or that the send is successfully canceled, in which case no part of the message is received at the destination. Then, any matching receive has to be satisfied by another send. If a receive is marked for cancellation, then it must be the case that either the receive completes normally, or that the receive is successfully canceled, in which case no part of the receive buffer is altered. Then, any matching send has to be satisfied by another receive. 
+.sp
+If the operation has been canceled, then information to that effect will be returned in the status argument of the operation that completes the communication.
+
+.SH NOTES
+.ft R
+The primary expected use of MPI_Cancel is in multi-buffering schemes,
+where speculative MPI_Irecvs are made.  When the
+computation completes, some of these requests may remain;
+using MPI_Cancel allows the user to cancel these unsatisfied requests.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Probe
+MPI_Iprobe
+MPI_Test_cancelled
+MPI_Cart_coords
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_coords.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_coords.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_coords.3	(revision 97)
@@ -0,0 +1,58 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_coords 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_coords\fP \- Determines process coords in Cartesian topology given rank in group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_coords(MPI_Comm \fIcomm\fP, int\fI rank\fP, int\fI maxdims\fP,
+	int\fI *coords\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_COORDS(\fICOMM\fP,\fI RANK\fP,\fI MAXDIMS\fP,\fI COORDS\fP, \fIIERROR\fP)
+	INTEGER	\fICOMM\fP,\fI RANK\fP,\fI MAXDIMS\fP,\fI COORDS(\fI*\fP)\fP,\fI IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Cartcomm::Get_coords(int \fIrank\fP, int \fImaxdims\fP, 
+	int \fIcoords\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+.TP 1i
+rank
+Rank of a process within group of comm (integer).
+.TP 1i
+maxdims
+ Length of vector coord in the calling program (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+coords
+Integer array (of size ndims,which was defined by MPI_Cart_create call) containing the Cartesian coordinates of specified process (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The inverse mapping, rank-to-coordinates translation is provided by MPI_Cart_coords.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_create.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_create\fP \- Makes a new communicator to which Cartesian topology information has been attached.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_create(MPI_Comm\fI comm_old\fP, int\fI ndims\fP, int\fI *dims\fP,
+	int\fI *periods\fP, int\fI reorder\fP, MPI_Comm\fI *comm_cart\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_CREATE(\fICOMM_OLD\fP,\fI NDIMS\fP,\fI DIMS\fP,\fI PERIODS\fP,\fI REORDER\fP,
+		\fICOMM_CART\fP,\fI IERROR\fP)
+	INTEGER	\fICOMM_OLD\fP,\fI NDIMS\fP,\fI DIMS\fP(*),\fI COMM_CART\fP,\fI IERROR\fP
+	LOGICAL	\fIPERIODS\fI(*),\fI REORDER\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Cartcomm Intracomm::Create_cart(int \fIndims\fP, const int \fIdims\fP[], 
+	const bool \fIperiods\fP[], bool \fIreorder\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm_old
+Input communicator (handle).
+.TP 1i
+ndims
+Number of dimensions of Cartesian grid (integer).
+.TP 1i
+dims
+Integer array of size ndims specifying the number of processes in each
+dimension.
+.TP 1i
+periods
+Logical array of size ndims specifying whether the grid is periodic (true)
+or not (false) in each dimension.
+.TP 1i
+reorder
+Ranking may be reordered (true) or not (false) (logical).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+comm_cart
+Communicator with new Cartesian topology (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Cart_create returns a handle to a new communicator to which the Cartesian topology information is attached. If reorder = false then the rank of each process in the new group is identical to its rank in the old group. Otherwise, the function may reorder the processes (possibly so as to choose a good embedding of the virtual topology onto the physical machine). If the total size of the Cartesian grid is smaller than the size of the group of comm, then some processes are returned MPI_COMM_NULL, in analogy to MPI_Comm_split. The call is erroneous if it specifies a grid that is larger than the group size. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_get.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_get\fP \-  Retrieves Cartesian topology information associated with a communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_get(MPI_Comm\fI comm\fP, int\fI maxdims\fP, int\fI *dims\fP, int\fI *periods\fP,
+	int\fI *coords\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_GET(\fICOMM\fP, \fIMAXDIMS\fP, \fIDIMS\fP, \fIPERIODS\fP, \fICOORDS\fP, \fIIERROR\fP)
+	INTEGER	\fICOMM\fP, \fIMAXDIMS\fP, \fIDIMS\fP(*), \fICOORDS\fP(*), \fIIERROR\fP
+	LOGICAL	\fIPERIODS\fP(*)
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Cartcomm::Get_topo(int \fImaxdims\fP, int \fIdims\fP[], 
+	bool \fIperiods\fP[], int \fIcoords\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+.TP 1i
+maxdims
+Length of vectors dims, periods, and coords in the calling program (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+dims
+Number of processes for each Cartesian dimension (array of integers).
+.TP 1i
+periods
+Periodicity (true/false) for each Cartesian dimension (array of logicals).
+.TP 1i
+coords
+Coordinates of calling process in Cartesian structure (array of integers). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The functions MPI_Cartdim_get and MPI_Cart_get return the Cartesian topology information that was associated with a communicator by MPI_Cart_create.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Cartdim_get
+MPI_Cart_create
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_map.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_map.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_map.3	(revision 97)
@@ -0,0 +1,69 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_map 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_map \fP \-  Maps process to Cartesian topology information.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_map(MPI_Comm \fIcomm\fP, int\fI ndims\fP, int\fI *dims\fP, 
+	int\fI *periods\fP, int\fI *newrank\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_MAP(\fICOMM, NDIMS, DIMS, PERIODS, NEWRANK, IERROR\fP)
+	INTEGER	\fICOMM, NDIMS, DIMS(*), NEWRANK, IERROR\fP
+	LOGICAL	\fIPERIODS\fP(*)
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Cartcomm::Map(int \fIndims\fP, const int \fIdims\fP[], 
+	const bool \fIperiods\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Input communicator (handle).
+.TP 1i
+ndims
+Number of dimensions of Cartesian structure (integer).
+.TP 1i
+dims
+Integer array of size ndims specifying the number of processes in each
+coordinate direction.
+.TP 1i
+periods
+Logical array of size ndims specifying the periodicity specification in each coordinate direction.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newrank
+Reordered rank of the calling process; MPI_UNDEFINED if calling process does not belong to grid (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Cart_map and MPI_Graph_map can be used to implement all other topology functions. In general they will not be called by the user directly, unless he or she is creating additional virtual topology capability other than that provided by MPI.  
+.sp
+MPI_Cart_map computes an "optimal" placement for the calling process on the physical machine. A possible implementation of this function is to always return the rank of the calling process, that is, not to perform any reordering. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_map
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_rank.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_rank.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_rank.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_rank 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_rank \fP \-  Determines process rank in communicator given Cartesian location.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_rank(MPI_Comm \fIcomm\fP, int\fI *coords\fP, int\fI *rank\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_RANK(\fICOMM, COORDS, RANK, IERROR\fP)
+	INTEGER	\fICOMM, COORDS(*), RANK, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Cartcomm::Get_cart_rank(const int \fIcoords\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+.TP 1i
+coords
+Integer array (of size ndims, which was defined by MPI_Cart_create call) specifying the Cartesian coordinates of a process. 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+rank
+Rank of specified process (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+For a process group with Cartesian structure, the function MPI_Cart_rank
+translates the logical process coordinates to process ranks as they are used by the point-to-point routines.  For dimension i with periods(i) = true, if the coordinate, coords(i), is out of range, that is, coords(i) < 0 or  coords(i) >= dims(i), it is shifted back to the interval  0 =< coords(i) < dims(i) automatically. Out-of-range coordinates are erroneous for nonperiodic dimensions.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.sp
+MPI_Cart_create
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_shift.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_shift.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_shift.3	(revision 97)
@@ -0,0 +1,90 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Cart_shift 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_shift \fP \-  Returns the shifted source and destination ranks, given a shift direction and amount.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_shift(MPI_Comm \fIcomm\fP, int\fI direction\fP, int\fI disp\fP, 
+	int\fI *rank_source\fP, int\fI *rank_dest\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_SHIFT(\fICOMM, DIRECTION, DISP, RANK_SOURCE,
+		RANK_DEST, IERROR\fP)
+	INTEGER	\fICOMM, DIRECTION, DISP, RANK_SOURCE\fP
+	INTEGER	\fIRANK_DEST, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Cartcomm::Shift(int \fIdirection\fP, int \fIdisp\fP, int& \fIrank_source\fP, 
+	int& \fIrank_dest\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+.TP 1i
+direction
+Coordinate dimension of shift (integer).
+.TP 1i
+disp
+Displacement ( > 0: upward shift, < 0: downward shift) (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+rank_source
+Rank of source process (integer).
+.TP 1i
+rank_dest
+Rank of destination process (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If the process topology is a Cartesian structure, an MPI_Sendrecv operation is likely to be used along a coordinate direction to perform a shift of data. As input, MPI_Sendrecv takes the rank of a source process for the receive, and the rank of a destination process for the send. If the function MPI_Cart_shift is called for a Cartesian process group, it provides the calling process with the above identifiers, which then can be passed to MPI_Sendrecv. The user specifies the coordinate direction and the size of the step (positive or negative). The function is local. 
+.sp
+The direction argument indicates the dimension of the shift, i.e., the coordinate whose value is modified by the shift. The coordinates are numbered from 0 to ndims-1, where ndims is the number of dimensions. 
+.sp
+\fBNote:\fP  The direction argument is in the range [0, n-1] for an n-dimensional Cartesian mesh. 
+.sp
+Depending on the periodicity of the Cartesian group in the specified coordinate direction, MPI_Cart_shift provides the identifiers for a circular or an end-off shift. In the case of an end-off shift, the value MPI_PROC_NULL may be returned in rank_source or rank_dest, indicating that the source or the destination for the shift is out of range.
+.sp
+\fBExample:\fP The communicator, comm, has a two-dimensional, periodic, Cartesian  topology associated with it. A two-dimensional array of REALs is stored one element per process, in variable A. One wishes to skew this array, by shifting column i (vertically, i.e., along the column) by i steps. 
+.sp
+.nf
+  \&.... 
+  C find process rank 
+        CALL MPI_COMM_RANK(comm, rank, ierr))
+  C find Cartesian coordinates 
+        CALL MPI_CART_COORDS(comm, rank, maxdims, coords, 
+                             ierr) 
+  C compute shift source and destination 
+        CALL MPI_CART_SHIFT(comm, 0, coords(2), source, 
+                            dest, ierr) 
+  C skew array 
+        CALL MPI_SENDRECV_REPLACE(A, 1, MPI_REAL, dest, 0, 
+                                  source, 0, comm, status, 
+                                  ierr)
+.fi
+
+.SH NOTE
+In Fortran, the dimension indicated by DIRECTION = i has DIMS(i+1) nodes, where DIMS is the array that was used to create the grid. In C, the dimension indicated by direction = i is the dimension specified by dims[i]. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_sub.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_sub.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cart_sub.3	(revision 97)
@@ -0,0 +1,69 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cart_sub 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cart_sub \fP \- Partitions a communicator into subgroups, which form lower-dimensional Cartesian subgrids.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cart_sub(MPI_Comm \fIcomm\fP, int\fI *remain_dims\fP, MPI_Comm\fI *comm_new\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CART_SUB(\fICOMM, REMAIN_DIMS, COMM_NEW, IERROR\fP)
+	INTEGER	\fICOMM, COMM_NEW, IERROR\fP
+	LOGICAL	\fIREMAIN_DIMS\fP(*) 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Cartcomm Cartcomm::Sub(const bool \fIremain_dims\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+.TP 1i
+remain_dims
+The ith entry of remain_dims specifies whether the ith dimension is kept in the subgrid (true) or is dropped (false) (logical vector).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+comm_new
+Communicator containing the subgrid that includes the calling process (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If a Cartesian topology has been created with MPI_Cart_create, the function  MPI_Cart_sub can be used to partition the communicator group into subgroups that form lower-dimensional Cartesian subgrids, and to build for each subgroup a communicator with the associated subgrid Cartesian topology. (This function is closely related to MPI_Comm_split.) 
+.sp
+\fBExample:\fP Assume that  MPI_Cart_create( \&..., comm) has defined a (2 x 3 x 4)   grid. Let  remain_dims = (true, false, true). Then a call to 
+.sp
+.nf
+    MPI_Cart_sub(comm, remain_dims, comm_new) 
+.fi
+.sp
+will create three communicators, each with eight processes in a 2 x 4 Cartesian topology. If remain_dims = (false, false, true) then the call to MPI_Cart_sub(comm, remain_dims, comm_new) will create six nonoverlapping communicators, each with four processes, in a one-dimensional Cartesian topology.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Cart_create
+MPI_Comm_split
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cartdim_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cartdim_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Cartdim_get.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Cartdim_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Cartdim_get \fP \-  Retrieves Cartesian topology information associated with a communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Cartdim_get(MPI_Comm\fI comm\fP, int\fI *ndims\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CARTDIM_GET(\fICOMM, NDIMS, IERROR\fP)
+	INTEGER	\fICOMM, NDIMS, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Cartcomm::Get_dim() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator with Cartesian structure (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+ndims
+Number of dimensions of the Cartesian structure (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Cartdim_get returns the number of dimensions of the Cartesian structure. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Cart_get
+MPI_Cart_create
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Close_port.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Close_port.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Close_port.3	(revision 97)
@@ -0,0 +1,47 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Close_port 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Close_port \fP \- Releases the specified network address. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Close_port(char *\fIport_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_CLOSE_PORT(\fIPORT_NAME, IERROR\fP)
+	CHARACTER*(*)	\fIPORT_NAME\fP
+	INTEGER		\fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Close_port(const char* \fIport_name\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+port_name
+A port (string).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Close_port releases the network address represented by \fIport_name\fP.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_accept.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_accept.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_accept.3	(revision 97)
@@ -0,0 +1,71 @@
+.\"Copyright 2009, Cisco Systems, Inc.  All rights reserved.
+.\"Copyright 2007, Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_accept 3OpenMPI "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_accept \fP \- Establishes communication with a client. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_accept(char *\fIport_name\fP, MPI_Info \fIinfo\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP, MPI_Comm *\fInewcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_ACCEPT(\fIPORT_NAME, INFO, ROOT, COMM, NEWCOMM, IERROR\fP)
+	CHARACTER*(*)	\fIPORT_NAME\fP
+	INTEGER		\fIINFO, ROOT, COMM, NEWCOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intracomm::Accept(const char* \fIport_name\fP,
+	const MPI::Info& \fIinfo\fP, int \fIroot\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+port_name
+Port name (string, used only on \fIroot\fP).
+.TP 1i
+info
+Options given by root for the accept (handle, used only on root). No options currently supported. 
+.TP 1i
+root
+Rank in \fIcomm\fP of root node (integer).
+.TP 1i
+comm
+Intracommunicator over which call is collective (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newcomm
+Intercommunicator with client as remote group (handle)
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_accept establishes communication with a client. It is collective over the calling communicator. It returns an intercommunicator that allows communication with the client, after the client has connected with the MPI_Comm_accept function using the MPI_Comm_connect function.
+.sp
+The \fIport_name\fP must have been established through a call to MPI_Open_port on the root.
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned.  
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+.SH SEE ALSO
+MPI_Comm_connect
+MPI_Open_port
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_call_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_call_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_call_errhandler.3	(revision 97)
@@ -0,0 +1,73 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_call_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+
+\fBMPI_Comm_call_errhandler\fP \- Passes the supplied error code to the
+error handler assigned to a communicator
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_call_errhandler(MPI_Comm \fIcomm\fP, int \fIerrorcode\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_CALL_ERRHANDLER(\fICOMM, ERRORCODE, IERROR\fP)
+	INTEGER	\fICOMM, ERRORCODE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Call_errhandler(int \fIerrorcode\fP) const 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1.4i
+comm 
+communicator with error handler (handle).
+.ft R
+.TP 1.4i
+errorcode 
+error code (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function invokes the error handler assigned to the communicator
+\fIcomm\fP with the supplied error code \fIerrorcode\fP. If the error
+handler was successfully called, the process is not aborted, and the
+error handler returns, this function returns MPI_SUCCESS.
+
+.SH NOTES
+.ft R
+Users should note that the default error handler is
+MPI_ERRORS_ARE_FATAL. Thus, calling this function will abort the
+processes in \fIcomm\fP if the default error handler has not been
+changed.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Comm_create_errhandler
+MPI_Comm_set_errhandler
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_compare.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_compare.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_compare.3	(revision 97)
@@ -0,0 +1,54 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_compare 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_compare \fP \-  Compares two communicators.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_compare(MPI_Comm \fIcomm1\fP, MPI_Comm\fI comm2\fP, int\fI *result\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_COMPARE(\fICOMM1, COMM2, RESULT, IERROR\fP)
+	INTEGER	\fICOMM1, COMM2, RESULT, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int Comm::Compare(const Comm& \fIcomm1\fP, const Comm& \fIcomm2\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm1
+Comm1 (handle).
+.TP 1i
+comm2
+Comm2 (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+result
+Result of comparison (integer). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_IDENT results if and only if comm1 and comm2 are handles for the same object (identical groups and same contexts). MPI_CONGRUENT results if the underlying groups are identical in constituents and rank order; these communicators differ only by context. MPI_SIMILAR results of the group members of both communicators are the same but the rank order differs. MPI_UNEQUAL results otherwise.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_connect.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_connect.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_connect.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_connect 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_connect \fP \- Establishes communication with a server. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_connect(char *\fIport_name\fP, MPI_Info \fIinfo\fP, int \fIroot\fP, 
+	MPI_Comm \fIcomm\fP, MPI_Comm *\fInewcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_CONNECT(\fIPORT_NAME, INFO, ROOT, COMM, NEWCOMM, IERROR\fP)
+	CHARACTER*(*)	\fIPORT_NAME\fP
+	INTEGER		\fIINFO, ROOT, COMM, NEWCOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intracomm::Connect(const char* \fIport_name\fP,
+	const MPI::Info& \fIinfo\fP, int \fIroot\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+port_name
+Port name (string, used only on \fIroot\fP).
+.TP 1i
+info
+Options given by root for the connect (handle, used only on root). No options currently supported. 
+.TP 1i
+root
+Rank in \fIcomm\fP of root node (integer).
+.TP 1i
+comm
+Intracommunicator over which call is collective (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newcomm
+Intercommunicator with client as remote group (handle)
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_connect establishes communication with a server specified by \fIport_name\fP. It is collective over the calling communicator and returns an intercommunicator in which the remote group participated in an MPI_Comm_accept. The MPI_Comm_connect call must only be called after the MPI_Comm_accept call has been made by the MPI job acting as the server.
+.sp
+If the named port does not exist (or has been closed), MPI_Comm_connect raises an error of class MPI_ERR_PORT. 
+.sp
+MPI provides no guarantee of fairness in servicing connection attempts. That is, connection attempts are not necessarily satisfied in the order in which they were initiated, and competition from other connection attempts may prevent a particular connection attempt from being satisfied. 
+
+The \fIport_name\fP parameter is the address of the server. It must be the same as the name returned by MPI_Open_port on the server. 
+ 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+.SH SEE ALSO
+MPI_Comm_accept
+MPI_Open_port
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_create\fP \- Creates a new communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_create(MPI_Comm \fIcomm\fP, MPI_Group\fI group\fP, MPI_Comm\fI *newcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_CREATE(\fICOMM, GROUP, NEWCOMM, IERROR\fP)
+	INTEGER	\fICOMM, GROUP, NEW, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intercomm::Create(const Group& \fIgroup\fP) const
+
+MPI::Intracomm MPI::Intracomm::Create(const Group& \fIgroup\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+.TP 1i
+group
+Group, which is a subset of the group of comm (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newcomm
+New communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function creates a new communicator newcomm with communication group
+defined by group and a new context. The function sets \fInewcomm\fR to a new communicator that spans all the processes that are in the group.   It sets \fInewcomm\fR to MPI_COMM_NULL for processes that are not in the group.   The call is erroneous if not all group arguments have the same value, or if group is not a subset of the group associated with comm. Note that the call must be executed by all processes in comm, even if they do not belong to the new group. 
+.sp
+.LP
+
+.SH NOTES
+MPI_Comm_create provides a means of making a subset of processes for the purpose of separate MIMD computation, with separate communication space. \fInewcomm\fR, which is created by MPI_Comm_create, can be used in subsequent calls to MPI_Comm_create (or other communicator constructors) to further subdivide a computation into parallel sub-computations. A more general service is provided by MPI_Comm_split. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_split
+.sp
+MPI_Intercomm_create
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_errhandler.3	(revision 97)
@@ -0,0 +1,78 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_create_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_create_errhandler \fP \- Creates an error handler that can be attached to communicators. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_create_errhandler(MPI_Comm_errhandler_fn \fI*function\fP,
+	MPI_Errhandler *\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_CREATE_ERRHANDLER(\fIFUNCTION, ERRHANDLER, IERROR\fP)
+	EXTERNAL	\fIFUNCTION\fP
+	INTEGER	\fIERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Errhandler
+	MPI::Comm::Create_errhandler(MPI::Comm::Errhandler_fn*
+	\fIfunction\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+function
+User-defined error handling procedure (function).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_create_errhandler creates an error handler that can be attached to communicators. This function is identical to MPI_Errhandler_create, the use of which is deprecated. 
+.sp
+In C, the user routine should be a function of type MPI_Comm_errhandler_fn, which is defined as 
+.sp
+.nf
+    typedef void MPI_Comm_errhandler_fn(MPI_Comm *, int *, \&...); 
+.fi
+.sp
+The first argument is the communicator in use. The second is the error code
+to be returned by the MPI routine that raised the error. This typedef replaces MPI_Handler_function, the use of which is deprecated. 
+.sp
+In Fortran, the user routine should be of this form:
+.sp
+.nf
+    SUBROUTINE COMM_ERRHANDLER_FN(COMM, ERROR_CODE, \&...)
+        INTEGER COMM, ERROR_CODE
+.fi
+.sp
+In C++, the user routine should be of this form:
+.sp
+.nf
+    typedef void MPI::Comm::Errhandler_fn(MPI_Comm &, int *, \&...); 
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_create_keyval.3	(revision 97)
@@ -0,0 +1,133 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_create_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_create_keyval\fP \- Generates a new attribute key. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function 
+	*\fIcomm_copy_attr_fn\fP, MPI_Comm_delete_attr_function 
+	*\fIcomm_delete_attr_fn\fP, int *\fIcomm_keyval\fP, 
+	void *\fIextra_state\fP) 
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_CREATE_KEYVAL(\fICOMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN, 
+	COMM_KEYVAL, EXTRA_STATE, IERROR\fP)
+
+    EXTERNAL \fICOMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN\fP
+    INTEGER \fICOMM_KEYVAL, IERROR \fP
+    INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static in MPI::Comm::Create_keyval(MPI::Comm::Copy_attr_function*
+	\fIcomm_copy_attr_fn\fP,
+	MPI::Comm::Delete_attr_function* \fIcomm_delete_attr_fn\fP,
+	void* \fIextra_state\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm_copy_attr_fn
+Copy callback function for \fIcomm_keyval\fP (function).
+.TP 1i
+comm_delete_attr_fn
+Delete callback function for \fIcomm_keyval\fP (function).
+.TP 1i
+extra_state
+Extra state for callback functions.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm_keyval
+Key value for future access (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function replaces MPI_Keyval_create, the use of which is deprecated. The C binding is identical. The Fortran binding differs in that \fIextra_state\fP is an address-sized integer. Also, the copy and delete callback functions have Fortran bindings that are consistent with address-sized attributes. 
+.sp
+The argument \fIcomm_copy_attr_fn\fP may be specified as MPI_COMM_NULL_COPY_FN or MPI_COMM_DUP_FN from C, C++, or Fortran. MPI_COMM_NULL_COPY_FN is a function that does nothing more than returning \fIflag\fP = 0 and MPI_SUCCESS. MPI_COMM_DUP_FN is a simple-minded copy function that sets \fIflag\fP = 1, returns the value of \fIattribute_val_in\fP in \fIattribute_val_out\fP, and returns MPI_SUCCESS. These replace the MPI-1 predefined callbacks MPI_NULL_COPY_FN and MPI_DUP_FN, the use of which is deprecated. 
+.sp
+The C callback functions are:
+.sp
+.nf
+typedef int MPI_Comm_copy_attr_function(MPI_Comm \fIoldcomm\fP, int \fIcomm_keyval\fP, 
+             void *\fIextra_state\fP, void *\fIattribute_val_in\fP, 
+             void *\fIattribute_val_out\fP, int *\fIflag\fP);
+.fi
+and
+.nf
+typedef int MPI_Comm_delete_attr_function(MPI_Comm \fIcomm\fP, int \fIcomm_keyval\fP, 
+             void *\fIattribute_val\fP, void *\fIextra_state\fP);
+.fi
+.sp
+which are the same as the MPI-1.1 calls but with a new name. The old names are deprecated.
+.sp
+The Fortran callback functions are:
+.sp
+.nf
+SUBROUTINE COMM_COPY_ATTR_FN(\fIOLDCOMM, COMM_KEYVAL, EXTRA_STATE, 
+             ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR\fP) 
+    INTEGER \fIOLDCOMM, COMM_KEYVAL, IERROR\fP 
+    INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE, ATTRIBUTE_VAL_IN, 
+        ATTRIBUTE_VAL_OUT\fP 
+    LOGICAL \fIFLAG\fP 
+.fi
+and
+.nf
+SUBROUTINE COMM_DELETE_ATTR_FN(\fICOMM, COMM_KEYVAL, ATTRIBUTE_VAL, EXTRA_STATE, 
+             IERROR\fP) 
+    INTEGER \fICOMM, COMM_KEYVAL, IERROR\fP 
+    INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL, EXTRA_STATE\fP 
+.fi
+.sp
+The C++ callbacks are:
+.sp
+.nf
+typedef int MPI::Comm::Copy_attr_function(const MPI::Comm& \fIoldcomm\fP, 
+             int \fIcomm_keyval\fP, void* \fIextra_state\fP, void* \fIattribute_val_in\fP, 
+             void* \fIattribute_val_out\fP, bool& \fIflag\fP); 
+.fi
+and
+.nf
+typedef int MPI::Comm::Delete_attr_function(MPI::Comm& \fIcomm\fP, 
+             int \fIcomm_keyval\fP, void* \fIattribute_val\fP, void* \fIextra_state\fP); 
+.fi
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIEXTRA_STATE\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIEXTRA_STATE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+.SH SEE ALSO
+.ft R
+.sp
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_delete_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_delete_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_delete_attr.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_delete_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_delete_attr\fP \- Deletes attribute value associated with a key. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_delete_attr(MPI_Comm \fIcomm\fP, int \fIcomm_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_Comm_delete_attr(\fICOMM, COMM_KEYVAL, IERROR\fP)
+	INTEGER	\fICOMM, COMM_KEYVAL, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Delete_attr(int \fIcomm_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator from which the attribute is deleted (handle). 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm_keyval
+Key value (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_delete_attr deletes an attribute from cache by key. This function invokes the attribute delete function delete_fn specified when the \fIcomm_keyval\fP was created. The call will fail if the delete_fn function returns an error code other than MPI_SUCCESS.  
+
+Whenever a communicator is replicated using the function MPI_Comm_dup, all callback copy functions for attributes that are currently set are invoked (in arbitrary order). Whenever a communicator is deleted using the function MPI_Comm_free, all callback delete functions for attributes that are currently set are invoked. 
+.sp
+This function is the same as MPI_Attr_delete but is needed to match the communicator-specific functions introduced in the MPI-2 standard. The use of MPI_Attr_delete is deprecated. 
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_disconnect.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_disconnect.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_disconnect.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_disconnect 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_disconnect\fP \- Deallocates communicator object and sets handle to MPI_COMM_NULL. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_disconnect(MPI_Comm *\fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_DISCONNECT(\fICOMM, IERROR\fP)
+	INTEGER	\fICOMM, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Disconnect()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_disconnect waits for all pending communication on \fIcomm\fP to complete internally, deallocates the communicator object, and sets the handle to MPI_COMM_NULL. It is a collective operation. 
+.sp
+It may not be called with the communicator MPI_COMM_WORLD or MPI_COMM_SELF.
+.sp
+MPI_Comm_disconnect may be called only if all communication is complete and matched, so that buffered data can be delivered to its destination. This requirement is the same as for MPI_Finalize. 
+.sp
+MPI_Comm_disconnect has the same action as MPI_Comm_free, except that it waits for pending communication to finish internally and enables the guarantee about the behavior of disconnected processes. 
+
+.SH NOTES
+.ft R
+To disconnect two processes you may need to call MPI_Comm_disconnect, MPI_Win_free, and MPI_File_close to remove all communication paths between the two processes. Note that it may be necessary to disconnect several communicators (or to free several windows or files) before two processes are completely independent. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_connect
+.br
+MPI_Comm_accept
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_dup.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_dup.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_dup.3	(revision 97)
@@ -0,0 +1,60 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_dup 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_dup \fP \-  Duplicates an existing communicator with all its cached information.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_dup(MPI_Comm \fIcomm\fP, MPI_Comm\fI *newcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_DUP(\fICOMM, NEWCOMM, IERROR\fP)    
+	INTEGER	\fICOMM, NEWCOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Intracomm Intracomm::Dup() const
+
+Intercomm Intercomm::Dup() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newcomm
+Copy of comm (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_dup duplicates the existing communicator comm with associated key
+values. For each key value, the respective copy callback function determines the attribute value associated with this key in the new communicator; one particular action that a copy callback may take is to delete the attribute from the new communicator. Returns in newcomm a new communicator with the same group, any copied cached information, but a new context (see Section 5.7.1 of the MPI-1 Standard, "Functionality").
+
+.SH NOTES
+This operation is used to provide a parallel
+library call with a duplicate communication space that has the same properties as the original communicator. This includes any attributes (see below) and topologies (see Chapter 6, "Process Topologies," in the MPI-1 Standard). This call is valid even if there are pending point-to-point communications involving the communicator comm. A typical call might involve an MPI_Comm_dup at the beginning of the parallel call, and an MPI_Comm_free of that duplicated communicator at the end of the call. Other models of communicator management are also possible.
+.sp
+This call applies to both intra- and intercommunicators. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_f2c.3	(revision 97)
@@ -0,0 +1,42 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_f2c 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_f2c, MPI_Comm_c2f, MPI_File_f2c, MPI_File_c2f, MPI_Info_f2c, MPI_Info_c2f, MPI_Op_f2c, MPI_Op_c2f, MPI_Request_f2c, MPI_Request_c2f, MPI_Type_f2c, MPI_Type_c2f, MPI_Win_f2c, MPI_Win_c2f \fP \- Translates a C handle into a Fortran handle, or vice versa.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Comm MPI_Comm_f2c(MPI_Fint \fIcomm\fP)
+MPI_Fint MPI_Comm_c2f(MPI_Comm \fIcomm\fP)
+
+MPI_File MPI_File_f2c(MPI_Fint \fIfile\fP)
+MPI_Fint MPI_File_c2f(MPI_File \fIfile\fP)
+
+MPI_Group MPI_Group_f2c(MPI Fint \fIgroup\fP)
+MPI_Fint MPI_Group_c2f(MPI Group \fIgroup\fP)
+
+MPI_Info MPI_Info_f2c(MPI_Fint \fIinfo\fP)
+MPI_Fint MPI_Info_c2f(MPI_Info \fIinfo\fP)
+
+MPI_Op MPI_Op_f2c(MPI_Fint \fIop\fP)
+MPI_Fint MPI_Op_c2f(MPI_Op \fIop\fP)
+
+MPI_Request MPI_Request_f2c(MPI_Fint \fIrequest\fP)
+MPI_Fint MPI_Request_c2f(MPI_Request \fIrequest\fP)
+
+MPI_Datatype MPI_Type_f2c(MPI_Fint \fIdatatype\fP)
+MPI_Fint MPI_Type_c2f(MPI_Datatype \fIdatatype\fP)
+
+MPI_Win MPI_Win_f2c(MPI_Fint \fIwin\fP)
+MPI_Fint MPI_Win_c2f(MPI_Win \fIwin\fP)
+
+.SH DESCRIPTION
+.ft R
+Handles are passed between Fortran and C or C++ by using an explicit C wrapper to convert Fortran handles to C handles. There is no direct access to C or C++ handles in Fortran. Handles are passed between C and C++ using overloaded C++ operators called from C++ code. There is no direct access to C++ objects from C. The type definition \fIMPI_Fint\fP is provided in C/C++ for an integer of the size that matches a Fortran \fIINTEGER\fP; usually, \fIMPI_Fint\fP will be equivalent to \fIint\fP. The handle translation functions are provided in C to convert from a Fortran handle (which is an integer) to a C handle, and vice versa.
+.PP
+For example, if \fIcomm\fP is a valid Fortran handle to a communicator, then MPI_Comm_f2c returns a valid C handle to that same communicator; if \fIcomm\fP = MPI_COMM_NULL (Fortran value), then MPI_Comm_f2c returns a null C handle; if \fIcomm\fP is an invalid Fortran handle, then MPI_Comm_f2c returns an invalid C handle. 
+.SH NOTE
+This function does not return an error value. Consequently, the result of calling it before MPI_Init or after MPI_Finalize is undefined.
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free.3	(revision 97)
@@ -0,0 +1,46 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_free \fP \- Mark a communicator object for deallocation.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_free(MPI_Comm *\fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_FREE(\fICOMM, IERROR\fP)
+	INTEGER	\fICOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Free()
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator to be destroyed (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This operation marks the communicator object for deallocation. The handle is set to MPI_COMM_NULL. Any pending operations that use this communicator will complete normally; the object is actually deallocated only if there are no other active references to it. This call applies to intracommunicators and intercommunicators. Upon actual deallocation, the delete callback functions for all cached attributes (see Section 5.7 in the MPI-1 Standard, "Caching") are called in arbitrary order.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_free_keyval.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_free_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_free_keyval\fP \- Frees attribute key for communicator cache attribute.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_free_keyval(int *\fIcomm_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_FREE_KEYVAL(\fICOMM_KEYVAL, IERROR\fP)
+	INTEGER	\fICOMM_KEYVAL, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void MPI::Comm::Free_keyval(int& \fIcomm_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm_keyval
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_free_keyval frees an extant attribute key. This function sets the value of \fIkeyval\fP to  MPI_KEYVAL_INVALID. Note that it is not erroneous to free an attribute key that is in use, because the actual free does not transpire until after all references (in other communicators on the process) to the key have been freed. These references need to be explictly freed by the program, either via calls to MPI_Comm_delete_attr that free one attribute instance, or by calls to MPI_Comm_free that free all attribute instances associated with the freed communicator. 
+.sp
+This call is identical to the call MPI_Keyval_free but is needed to match the  communicator-specific creation function introduced in the MPI-2 standard. The use of MPI_Keyval_free is deprecated. 
+
+
+.SH NOTES
+.ft R
+Key values are global (they can be used with any and all communicators).
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_attr.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_get_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_get_attr\fP \- Retrieves attribute value by key.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_get_attr(MPI_Comm \fIcomm\fP, int \fIcomm_keyval\fP, 
+	void *\fIattribute_val\fP, int *\fIflag\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_GET_ATTR(\fICOMM, COMM_KEYVAL, ATTRIBUTE_VAL, IERROR\fP)
+	INTEGER	\fICOMM, COMM_KEYVAL, IERROR \fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP
+	LOGICAL \fIFLAG\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Comm::Get_attr(int \fIcomm_keyval\fP, void* \fIattribute_val\fP) 
+	const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator to which the attribute is attached (handle).
+.TP 1i
+comm_keyval
+Key value (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+attribute_val
+Attribute value, unless f\fIlag\fP = false.
+.TP 1i
+flag
+False if no attribute is associated with the key (logical). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_get_attr retrieves an attribute value by key. The call is erroneous if there is no key with value \fIkeyval\fP. On the other hand, the call is correct if the key value exists, but no attribute is attached on \fIcomm\fP for that key; in that case, the call returns \fIflag\fP = false. In particular, MPI_KEYVAL_INVALID is an erroneous key value. 
+.sp
+This function replaces MPI_Attr_get, the use of which is deprecated. The C binding is identical. The Fortran binding differs in that \fIattribute_val\fP is an address-sized integer.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_errhandler.3	(revision 97)
@@ -0,0 +1,54 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_get_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_get_errhandler \fP \- Retrieves error handler associated with a communicator. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_get_errhandler(MPI_Comm \fIcomm\fP,
+	MPI_Errhandler *\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_GET_ERRHANDLER(\fICOMM, ERRHANDLER, IERROR\fP)
+	INTEGER	\fICOMM, ERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Errhandler MPI::Comm::Get_errhandler() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+New error handler for communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_get_errhandler retrieves the error handler currently associated with a communicator. This call is identical to MPI_Errhandler_get, the use of which is deprecated. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_name.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_get_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_get_name\fP \- Returns the name that was most recently associated with a communicator. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_get_name(MPI_Comm \fIcomm\fP, char *\fIcomm_name\fP, int *\fIresultlen\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_GET_NAME(\fICOMM, COMM_NAME, RESULTLEN, IERROR\fP)
+	INTEGER	\fICOMM, RESULTLEN, IERROR \fP
+	CHARACTER*(*) \fICOMM_NAME\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Get_name(char* \fIcomm_name\fP, int& \fIresultlen\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator the name of which is to be returned (handle).
+.TP 1i
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm_name
+Name previously stored on the communicator, or an empty string if no such name exists (string).
+.TP 1i
+resultlen
+Length of returned name (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_get_name returns the last name that was previously associated with the given communicator. The name may be set and retrieved from any language. The same name will be returned independent of the language used. \fIcomm_name\fP should be allocated so that it can hold a resulting string of length MPI_MAX_OBJECT_NAME characters. MPI_Comm_get_name returns a copy of the set name in \fIcomm_name\fP.
+.sp
+If the user has not associated a name with a communicator, or an error occurs, MPI_Comm_get_name will return an empty string (all spaces in Fortran, "" in C and C++). The three predefined communicators will have predefined names associated with them. Thus, the names of MPI_COMM_WORLD, MPI_COMM_SELF, and MPI_COMM_PARENT will have the default of MPI_COMM_WORLD, MPI_COMM_SELF, and MPI_COMM_PARENT. The fact that the system may have chosen to give a default name to a communicator does not prevent the user from setting a name on the same communicator; doing this removes the old name and assigns the new one. 
+
+.SH NOTES
+.ft R
+It is safe simply to print the string returned by MPI_Comm_get_name, as it is always a valid string even if there was no name. 
+.sp
+Note that associating a name with a communicator has no effect on the semantics of an MPI program, and will (necessarily) increase the store requirement of the program, since the names must be saved. Therefore, there is no requirement that users use these functions to associate names with communicators. However debugging and profiling MPI applications may be made easier if names are associated with communicators, since the debugger or profiler should then be able to present information in a less cryptic manner. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_parent.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_parent.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_get_parent.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_get_parent 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_get_parent\fP \- Returns the parent intercommunicator of current spawned process. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_get_parent(MPI_Comm *\fIparent\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_GET_PARENT(\fIPARENT, IERROR\fP)
+	INTEGER	\fIPARENT, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Intercomm MPI::Comm::Get_parent()
+
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+parent
+The parent communicator (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If a process was started with MPI_Comm_spawn or MPI_Comm_spawn_multiple, MPI_Comm_get_parent returns the "parent" intercommunicator of the current process. This parent intercommunicator is created implicitly inside of MPI_Init and is the same intercommunicator returned by the spawn call made in the parents. 
+.sp
+If the process was not spawned, MPI_Comm_get_parent returns MPI_COMM_NULL.
+.sp
+After the parent communicator is freed or disconnected, MPI_Comm_get_parent returns MPI_COMM_NULL. 
+
+.SH NOTES
+.ft R
+MPI_Comm_get_parent returns a handle to a single intercommunicator. Calling MPI_Comm_get_parent a second time returns a handle to the same intercommunicator. Freeing the handle with MPI_Comm_disconnect or MPI_Comm_free will cause other references to the intercommunicator to become invalid (dangling). Note that calling MPI_Comm_free on the parent communicator is not useful. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_spawn
+MPI_Comm_spawn_multiple
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_group.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_group.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_group.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_group 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_group \fP \- Returns the group associated with a communicator.  
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_group(MPI_Comm \fIcomm\fP, MPI_Group *\fIgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_GROUP(\fICOMM, GROUP, IERROR\fP)
+  	INTEGER	\fICOMM, GROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Comm::Get_group() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group in communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If the communicator is an intercommunicator (enables communication between two groups of processes), this function returns the local group.  To return the remote group, use the MPI_Comm_remote_group function. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_join.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_join.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_join.3	(revision 97)
@@ -0,0 +1,96 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_join 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Comm_join\fP \- Establishes communication between MPI jobs
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_join(int \fIfd\fP, MPI_Comm *\fIintercomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_JOIN(\fIFD, INTERCOMM, IERROR\fP)
+	INTEGER	\fIFD, INTERCOMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Comm::Join(const int \fIfd\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fd
+socket file descriptor (socket).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+intercomm
+Intercommunicator between processes (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_join creates an intercommunicator from the union of two MPI
+processes that are connected by a socket. \fIfd\fP is a file
+descriptor representing a socket of type SOCK_STREAM (a two-way
+reliable byte-stream connection). Nonblocking I/O and asynchronous
+notification via SIGIO must not be enabled for the socket. The socket
+must be in a connected state, and must be quiescent when MPI_Comm_join
+is called.
+.sp
+MPI_Comm_join must be called by the process at each end of the
+socket. It does not return until both processes have called
+MPI_Comm_join.
+
+.SH NOTES
+.ft R
+There are no MPI library calls for opening and manipulating a socket.
+The socket \fIfd\fP can be opened using standard socket API calls.
+MPI uses the socket to bootstrap creation of the intercommunicator,
+and for nothing else. Upon return, the file descriptor will be open
+and quiescent.
+.sp
+In a multithreaded process, the application must ensure that other
+threads do not access the socket while one is in the midst of
+calling MPI_Comm_join.
+.sp
+The returned communicator will contain the two processes connected by
+the socket, and may be used to establish MPI communication with
+additional processes, through the usual MPI communicator-creation
+mechanisms.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+socket(3SOCKET)
+MPI_Comm_create
+MPI_Comm_group
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_rank.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_rank.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_rank.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_rank 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_rank\fP \- Determines the rank of the calling process in the communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_rank(MPI_Comm \fIcomm\fP, int\fI *rank\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_RANK(\fICOMM, RANK, IERROR\fP)
+	INTEGER	\fICOMM, RANK, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Comm::Get_rank() const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+rank
+Rank of the calling process in group of comm (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function gives the rank of the process in the
+particular communicator's group. It is equivalent to accessing the
+communicator's group with MPI_Comm_group, computing the rank using MPI_Group_rank, and then freeing the temporary group via MPI_Group_free. 
+.sp
+Many programs will be written with the master-slave model, where one process (such as the rank-zero process) will play a supervisory role, and the other processes will serve as compute nodes. In this framework, MPI_Comm_size and MPI_Comm_rank are useful for determining the roles of the various processes of a communicator. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_group
+MPI_Comm_size
+MPI_Comm_compare
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_group.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_group.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_group.3	(revision 97)
@@ -0,0 +1,61 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_remote_group 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_remote_group \fP \- Accesses the remote group associated with an intercommunicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_remote_group(MPI_Comm \fIcomm\fP, MPI_Group\fI *group\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_REMOTE_GROUP(\fICOMM, GROUP, IERROR\fP)
+	INTEGER	\fICOMM, GROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Intercomm::Get_remote_group() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Remote group of communicator.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_remote_group accesses the remote group associated with an intercommunicator.
+.sp
+The intercommunicator accessors (MPI_Comm_test_inter, MPI_Comm_remote_size,
+MPI_Comm_remote_group) are all local operations.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.sp
+.nf
+MPI_Comm_test_inter
+MPI_Comm_remote_size
+MPI_Intercomm_create
+MPI_Intercomm_merge
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_remote_size.3	(revision 97)
@@ -0,0 +1,61 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_remote_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_remote_size \fP \- Determines the size of the remote group associated with an intercommunicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_remote_size(MPI_Comm \fIcomm\fP, int\fI *size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_REMOTE_SIZE(\fICOMM, SIZE, IERROR\fP)
+	INTEGER	\fICOMM, SIZE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Intercomm::Get_remote_size() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Number of processes in the remote group of comm (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_remote_size determines the size of the remote group associated with an intercommunicator.
+.sp
+The  intercommunicator accessors (MPI_Comm_test_inter, MPI_Comm_remote_size, MPI_Comm_remote_group) are all local operations.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_test_inter
+MPI_Comm_remote_group
+MPI_Intercomm_create
+MPI_Intercomm_merge
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_attr.3	(revision 97)
@@ -0,0 +1,80 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_set_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_set_attr\fP \- Stores attribute value associated with a key.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_set_attr(MPI_Comm \fIcomm\fP, int \fIcomm_keyval\fP, void *\fIattribute_val\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SET_ATTR(\fICOMM, COMM_KEYVAL, ATTRIBUTE_VAL, IERROR\fP)
+	INTEGER	\fICOMM, COMM_KEYVAL, IERROR \fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Set_attr(int \fIcomm_keyval\fP, const void* \fIattribute_val\fP) const
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator from which attribute will be attached (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm_keyval
+Key value (integer).
+.TP 1i
+attribute_val
+Attribute value.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_set_attr stores the stipulated attribute value \fIattribute_val\fP for subsequent retrieval by MPI_Comm_get_attr. If the value is already present, then the outcome is as if MPI_Comm_delete_attr was first called to delete the previous value (and the callback function delete_fn was executed), and a new value was next stored. The call is erroneous if there is no key with value \fIcomm_keyval\fP; in particular MPI_KEYVAL_INVALID is an erroneous key value. The call will fail if the delete_fn function returned an error code other than MPI_SUCCESS.
+.sp
+This function replaces MPI_Attr_put, the use of which is deprecated. The C binding is identical. The Fortran binding differs in that \fIattribute_val\fP is an address-sized integer. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+.ft R
+Values of the permanent attributes MPI_TAG_UB, MPI_HOST,
+MPI_IO, and MPI_WTIME_IS_GLOBAL may not be changed.
+.sp
+The type of the attribute value depends on whether C or Fortran is being used. In C, an attribute value is a pointer (void *); in Fortran, it is a single, address-size integer system for which a pointer does not fit in an integer. 
+.sp
+If an attribute is already present, the delete function (specified when the corresponding keyval was created) will be called.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_errhandler.3	(revision 97)
@@ -0,0 +1,51 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_set_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_set_errhandler \fP \- Attaches a new error handler to a communicator. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_set_errhandler(MPI_Comm \fIcomm\fP,
+	MPI_Errhandler \fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SET_ERRHANDLER(\fICOMM, ERRHANDLER, IERROR\fP)
+	INTEGER	\fICOMM, ERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Set_errhandler(const MPI::Errhandler& \fIerrhandler\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+New error handler for communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_set_errhandler attaches a new error handler to a communicator. The error handler must be either a predefined error handler or an error handler created by a call to MPI_Comm_create_errhandler. This call is identical to MPI_Errhandler_set, the use of which is deprecated. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_set_name.3	(revision 97)
@@ -0,0 +1,71 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Comm_set_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_set_name\fP \- Associates a name with a communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_set_name(MPI_Comm \fIcomm\fP, char *\fIcomm_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SET_NAME(\fICOMM, COMM_NAME, IERROR\fP)
+	INTEGER	\fICOMM, IERROR \fP
+	CHARACTER*(*) \fICOMM_NAME\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Set_name(const char* \fIcomm_name\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator whose identifier is to be set (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm_name
+Character string to be used as the identifier for the communicator (string).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_set_name allows a user to associate a name string with a communicator. The character string that is passed to MPI_Comm_set_name is saved inside the MPI library (so it can be freed by the caller immediately after the call, or allocated on the stack). Leading spaces in \fIname\fP are significant, but trailing ones are not.
+.sp
+MPI_Comm_set_name is a local (noncollective) operation, which affects only the name of the communicator as seen in the process that made the MPI_Comm_set_name call. There is no requirement that the same (or any) name be assigned to a communicator in every process where it exists. 
+.sp
+The length of the name that can be stored is limited to the value of MPI_MAX_OBJECT_NAME in Fortran and MPI_MAX_OBJECT_NAME-1 in C and C++ (to allow for the null terminator). Attempts to set names longer than this will result in truncation of the name. MPI_MAX_OBJECT_NAME must have a value of at least 64.
+
+
+.SH NOTES
+.ft R
+Since MPI_Comm_set_name is provided to help debug code, it is sensible to give the same name to a communicator in all of the processes where it exists, to avoid confusion. 
+.sp
+Regarding name length, under circumstances of store exhaustion, an attempt to set a name of any length could fail; therefore, the value of MPI_MAX_OBJECT_NAME should be viewed only as a strict upper bound on the name length, not a guarantee that setting names of less than this length will always succeed.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Comm_get_name
+.sp
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_size.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_size \fP \- Returns the size of the group associated with a communicator.  
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_size(MPI_Comm \fIcomm\fP, int *\fIsize\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SIZE(\fICOMM, SIZE, IERROR\fP)
+	INTEGER	\fICOMM, SIZE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Comm::Get_size() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Number of processes in the group of comm (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function indicates the number of processes
+involved in a communicator. For MPI_COMM_WORLD, it indicates the total number of processes available. This function is equivalent to accessing the
+communicator's group with MPI_Comm_group, computing the size using MPI_Group_size, and then freeing the temporary group via MPI_Group_free. If the communicator is an intra-communicator (enables communication between two groups), this function returns the size of the local group.  To return the size of the remote group, use the MPI_Comm_remote_size function.
+.sp
+This call is often used with MPI_Comm_rank to determine the amount of concurrency available for a specific library or program. MPI_Comm_rank indicates the rank of the process that calls it in the range from  0 . . . size-1, where size is the return value of MPI_Comm_size. 
+
+.SH NOTE
+.ft R
+MPI_COMM_NULL is not considered a valid argument to this function. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_group
+MPI_Comm_rank
+MPI_Comm_compare
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn.3	(revision 97)
@@ -0,0 +1,157 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_spawn 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_spawn\fP \- Spawns a number of identical binaries. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_spawn(char *\fIcommand\fP, char *\fIargv\fP[], int \fImaxprocs\fP, 
+	MPI_Info \fIinfo\fP, int \fIroot\fP, MPI_Comm \fIcomm\fP, 
+	MPI_Comm *\fIintercomm\fP, int \fIarray_of_errcodes\fP[])
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SPAWN(\fICOMMAND, ARGV, MAXPROCS, INFO, ROOT, COMM, 
+	INTERCOMM, ARRAY_OF_ERRCODES, IERROR\fP)
+
+	CHARACTER*(*) \fICOMMAND, ARGV(*)\fP 
+	INTEGER	\fIINFO, MAXPROCS, ROOT, COMM, INTERCOMM, 
+	ARRAY_OF_ERRORCODES(*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intracomm::Spawn(const char* \fIcommand\fP,
+	const char* \fIargv\fP[], int \fImaxprocs\fP, const MPI::Info& \fIinfo\fP,
+	int \fIroot\fP, int \fIarray_of_errcodes\fP[]) const
+
+MPI::Intercomm MPI::Intracomm::Spawn(const char* \fIcommand\fP,
+	const char* \fIargv\fP[], int \fImaxprocs\fP, const MPI::Info& \fIinfo\fP,
+	int \fIroot\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+command
+Name of program to be spawned (string, significant only at \fIroot\fP).
+.TP 1i
+argv
+Arguments to \fIcommand\fP (array of strings, significant only at \fIroot\fP).
+.TP 1i
+maxprocs
+Maximum number of processes to start (integer, significant only at \fIroot\fP).
+.TP 1i
+info
+A set of key-value pairs telling the runtime system where and how to start the processes (handle, significant only at \fIroot\fP). 
+.TP 1i
+root
+Rank of process in which previous arguments are examined (integer).
+.TP 1i
+comm
+Intracommunicator containing group of spawning processes (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+intercomm
+Intercommunicator between original group and the newly spawned group (handle).
+.TP 1i
+array_of_errcodes
+One code per process (array of integers).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_spawn tries to start \fImaxprocs\fP identical copies of the MPI program specified by \fIcommand\fP, establishing communication with them and returning an intercommunicator. The spawned processes are referred to as children. The children have their own MPI_COMM_WORLD, which is separate from that of the parents. MPI_Comm_spawn is collective over \fIcomm\fP, and also may not return until MPI_Init has been called in the children. Similarly, MPI_Init in the children may not return until all parents have called MPI_Comm_spawn. In this sense, MPI_Comm_spawn in the parents and MPI_Init in the children form a collective operation over the union of parent and child processes. The intercommunicator returned by MPI_Comm_spawn contains the parent processes in the local group and the child processes in the remote group. The ordering of processes in the local and remote groups is the same as the as the ordering of the group of the \fIcomm\fP in the parents and of MPI_COMM_WORLD of the children, respectively. This intercommunicator can be obtained in the children through the function MPI_Comm_get_parent. 
+.sp
+The MPI standard allows an implementation to use the MPI_UNIVERSE_SIZE attribute of MPI_COMM_WORLD to specify the number of processes that will be active in a program.  Although this implementation of the MPI standard defines MPI_UNIVERSE_SIZE, it does not allow the user to set its value.  If you try to set the value of MPI_UNIVERSE_SIZE, you will get an error message.
+.sp
+The \fIcommand\fP Argument 
+.sp
+The \fIcommand\fP argument is a string containing the name of a program to be spawned. The string is null-terminated in C. In Fortran, leading and trailing spaces are stripped. MPI looks for the file first in the working directory of the spawning process. 
+.sp
+The \fIargv\fP Argument
+.sp
+\fIargv\fP is an array of strings containing arguments that are passed to the program. The first element of \fIargv\fP is the first argument passed to \fIcommand\fP, not, as is conventional in some contexts, the command itself. The argument list is terminated by NULL in C and C++ and an empty string in Fortran. In Fortran, leading and trailing spaces are always stripped, so that a string consisting of all spaces is considered an empty string. The constant MPI_ARGV_NULL may be used in C, C++ and Fortran to indicate an empty argument list. In C and C++, this constant is the same as NULL. 
+.sp
+In C, the MPI_Comm_spawn argument \fIargv\fP differs from the \fIargv\fP argument of \fImain\fP in two respects. First, it is shifted by one element. Specifically, \fIargv\fP[0] of \fImain\fP  contains the name of the program (given by \fIcommand\fP). \fIargv\fP[1] of \fImain\fP corresponds to \fIargv\fP[0] in MPI_Comm_spawn, \fIargv\fP[2] of \fImain\fP to \fIargv\fP[1] of MPI_Comm_spawn, and so on. Second, \fIargv\fP of MPI_Comm_spawn must be null-terminated, so that its length can be determined. Passing an \fIargv\fP of MPI_ARGV_NULL to MPI_Comm_spawn results in \fImain\fP receiving \fIargc\fP of 1 and an \fIargv\fP whose element 0 is the name of the program. 
+.sp
+The \fImaxprocs\fP Argument
+.sp
+Open MPI tries to spawn \fImaxprocs\fP processes. If it is unable to spawn \fImaxprocs\fP processes, it raises an error of class MPI_ERR_SPAWN. If MPI is able to spawn the specified number of processes, MPI_Comm_spawn returns successfully and the number of spawned processes, \fIm\fP, is given by the size of the remote group of \fIintercomm\fP.
+.sp
+A spawn call with the default behavior is called hard. A spawn call for which fewer than \fImaxprocs\fP processes may be returned is called soft. 
+.sp
+The \fIinfo\fP Argument 
+.sp
+The \fIinfo\fP argument is an opaque handle of type MPI_Info in C, MPI::Info in C++ and INTEGER in Fortran. It is a container for a number of user-speci ed (\fIkey,value\fP) pairs. \fIkey\fP and \fIvalue\fP are strings (null-terminated char* in C, character*(*) in Fortran). Routines to create and manipulate the \fIinfo\fP argument are described in Section 4.10 of the MPI-2 standard. 
+.sp
+For the SPAWN calls, \fIinfo\fP provides additional, implementation-dependent instructions to MPI and the runtime system on how to start processes. An application may pass MPI_INFO_NULL in C or Fortran. Portable programs not requiring detailed control over process locations should use MPI_INFO_NULL.
+.sp
+The following keys for \fIinfo\fP are recognized in Open MPI. (The reserved values mentioned in Section 5.3.4 of the MPI-2 standard are not implemented.)
+.sp
+.nf
+Key                   Type      Description
+---                   ----      -----------
+
+host                  char *    Host on which the process should be spawned.
+                                See the \fIorte_host\fP man page for an
+                                explanation of how this will be used.
+hostfile              char *    Hostfile containing the hosts on which
+                                the processes are to be spawned. See
+                                the \fIorte_hostfile\fP man page for an
+                                explanation of how this will be used.
+wdir                  char *    Directory where the executable is located.
+ompi_prefix           char *    Same as the --prefix command line argument
+                                to mpirun.
+ompi_non_mpi          bool      If set to true, launching a non-MPI
+                                application; the returned communicator
+                                will be MPI_COMM_NULL. Failure to set
+                                this flag when launching a non-MPI
+                                application will cause both the child
+                                and parent jobs to "hang".
+.fi
+
+\fIbool\fP info keys are actually strings but are evaluated as
+follows: if the string value is a number, it is converted to an
+integer and cast to a boolean (meaning that zero integers are false
+and non-zero values are true).  If the string value is
+(case-insensitive) "yes" or "true", the boolean is true.  If the
+string value is (case-insensitive) "no" or "false", the boolean is
+false.  All other string values are unrecognized, and therefore false.
+  
+.sp
+The \fIroot\fP Argument
+.sp
+All arguments before the \fIroot\fP argument are examined only on the process whose rank in \fIcomm\fP is equal to \fIroot\fP. The value of these arguments on other processes is ignored. 
+.sp
+The \fIarray_of_errcodes\fP Argument
+.sp
+The \fIarray_of_errcodes\fP is an array of length \fImaxprocs\fP in which MPI reports the status of the processes that MPI was requested to start. If all \fImaxprocs\fP processes were spawned, \fIarray_of_errcodes\fP is filled in with the value MPI_SUCCESS. If anyof the processes are \fInot\fP spawned, \fIarray_of_errcodes\fP is filled in with the value MPI_ERR_SPAWN. In C or Fortran, an application may pass MPI_ERRCODES_IGNORE if it is not interested in the error codes. In C++ this constant does not exist, and the \fIarray_of_errcodes\fP argument may be omitted from the argument list. 
+
+.SH NOTES
+.ft R
+Completion of MPI_Comm_spawn in the parent does not necessarily mean that MPI_Init has been called in the children (although the returned intercommunicator can be used immediately). 
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_spawn_multiple(3)
+MPI_Comm_get_parent(3)
+mpirun(1)
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn_multiple.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn_multiple.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_spawn_multiple.3	(revision 97)
@@ -0,0 +1,160 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_spawn_multiple 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_spawn_multiple\fP \- Spawns multiple binaries, or the same binary with multiple sets of arguments. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_spawn_multiple(int \fIcount\fP, char *\fIarray_of_commands\fP[], 
+	char **\fIarray_of_argv\fP[], int \fIarray_of_maxprocs\fP[], MPI_Info 
+	\fIarray_of_info\fP[], int \fIroot\fP, MPI_Comm \fIcomm\fP, MPI_Comm *\fIintercomm\fP, 
+	int \fIarray_of_errcodes\fP[])
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SPAWN_MULTIPLE(\fICOUNT, ARRAY_OF_COMMANDS, ARRAY_OF_ARGV, 
+	ARRAY_OF_MAXPROCS, ARRAY_OF_INFO, ROOT, COMM, INTERCOMM, 
+	ARRAY_OF_ERRCODES, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_INFO(*), ARRAY_OF_MAXPROCS(*), ROOT, 
+		COMM, INTERCOMM, ARRAY_OF_ERRCODES(*), IERROR\fP 
+	CHARACTER*(*) \fIARRAY_OF_COMMANDS\fP(*), \fIARRAY_OF_ARGV\fP(\fICOUNT\fP, *)
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intracomm::Spawn_multiple(int \fIcount\fP,
+	const char* \fIarray_of_commands\fP[], const char** \fIarray_of_argv\fP[],
+	const int \fIarray_of_maxprocs\fP[], const MPI::Info \fIarray_of_info\fP[],
+	int \fIroot\fP, int \fIarray_of_errcodes\fP[])
+
+MPI::Intercomm MPI::Intracomm::Spawn_multiple(int \fIcount\fP,
+	const char* \fIarray_of_commands\fP[], const char** \fIarray_of_argv\fP[],
+	const int \fIarray_of_maxprocs\fP[], const MPI::Info \fIarray_of_info\fP[],
+	int \fIroot\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of commands (positive integer, significant to MPI only at \fIroot\fP -- see NOTES).
+.TP 1i
+array_of_commands
+Programs to be executed (array of strings, significant only at \fIroot\fP). 
+.TP 1i
+array_of_argv
+Arguments for \fIcommands\fP (array of array of strings,  significant only at \fIroot\fP). 
+.TP 1i
+array_of_maxprocs
+Maximum number of processes to start for each command (array of integers, significant only at \fIroot\fP). 
+.TP 1i
+array_of_info
+Info objects telling the runtime system where and how to start processes (array of handles, significant only at \fIroot\fP).
+.TP 1i
+root
+Rank of process in which previous arguments are examined (integer).
+.TP 1i
+comm
+Intracommunicator containing group of spawning processes (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+intercomm
+Intercommunicator between original group and the newly spawned group (handle).
+.TP 1i
+array_of_errcodes
+One code per process (array of integers).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Comm_spawn_multiple is identical to MPI_Comm_spawn except that it can specify multiple executables. The first argument, \fIcount\fP, indicates the number of executables. The next three arguments are arrays of the corresponding arguments in MPI_Comm_spawn. The next argument, \fIarray_of_info\fP, is an array of \fIinfo\fP arguments; however, only the first argument in that array is used.  Any subsequent arguments in the array are ignored because an \fIinfo\fP argument applies to the entire job that is spawned, and cannot be different for each executable in the job.  See the INFO ARGUMENTS section for more information.
+.sp
+For the Fortran version of \fIarray_of_argv\fP, the element \fIarray_of_argv\fP(i,j) is the jth argument to command number i. 
+.sp
+In any language, an application may use the constant MPI_ARGVS_NULL (which is likely to be (char ***)0 in C) to specify that no arguments should be passed to any commands. The effect of setting individual elements of \fIarray_of_argv\fP to MPI_ARGV_NULL is not defined. To specify arguments for some commands but not others, the commands without arguments should have a corresponding \fIargv\fP whose first element is null ((char *)0 in C and empty string in Fortran). 
+.sp
+All of the spawned processes have the same MPI_COMM_WORLD. Their ranks in MPI_COMM_WORLD correspond directly to the order in which the commands are specified in MPI_Comm_spawn_multiple. Assume that m1 processes are generated by the first command, m2 by the second, etc. The processes corresponding to the first command have ranks 0, 1,..., m1-1. The processes in the second command have ranks m1, m1+1, ..., m1+m2-1. The processes in the third have ranks m1+m2, m1+m2+1, ..., m1+m2+m3-1, etc.
+.sp
+The \fIarray_of_errcodes\fP argument is 1-dimensional array of size 
+.sp
+.nf
+	 _ count
+	\\       n ,
+	/_ i=1   i 
+.fi
+.sp
+where i is the ith element of \fIarray_of_maxprocs\fP. Command number \fIi\fP corresponds to the i contiguous slots in this array from element 
+.sp
+.nf
+                      _              _
+	 _ \fIi\fP-1          |   _ \fIi\fP          |
+	\\       n ,  to |  \\      n      | -1
+	/_ \fIj\fP=1   i      |  /_ \fIj\fP=1  j     |
+                     |_              _| 
+.fi 
+.sp
+Error codes are treated as for MPI_Comm_spawn. 
+
+ 
+.SH INFO ARGUMENTS
+The following keys for \fIinfo\fP are recognized in "Open MPI". (The reserved values mentioned in Section 5.3.4 of the MPI-2 standard are not implemented.)
+.sp
+.sp
+.nf
+Key                   Type      Description
+---                   ----      -----------
+
+host                  char *    Host on which the process should be spawned.
+wdir                  char *    Directory where the executable is located.
+ompi_prefix           char *    Same as the --prefix command line argument
+                                to mpirun.
+ompi_non_mpi          bool      If set to true, launching a non-MPI
+                                application; the returned communicator
+                                will be MPI_COMM_NULL.
+.fi
+
+.sp 
+\fIbool\fP info keys are actually strings but are evaluated as
+follows: if the string value is a number, it is converted to an
+integer and cast to a boolean (meaning that zero integers are false
+and non-zero values are true).  If the string value is
+(case-insensitive) "yes" or "true", the boolean is true.  If the
+string value is (case-insensitive) "no" or "false", the boolean is
+false.  All other string values are unrecognized, and therefore false.
+
+.sp
+Note that if any of the info handles have \fIompi_non_mpi\fP set to
+true, then all info handles must have it set to true.  If some are set
+to true, but others are set to false (or are unset), MPI_ERR_INFO will
+be returned.
+  
+.sp
+Note that in "Open MPI", the first array location in \fIarray_of_info\fP is applied to all the commands in \fIarray_of_commands\fP. 
+
+.SH NOTES
+The argument \fIcount\fP is interpreted by MPI only at the root, as is \fIarray_of_argv\fP. Since the leading dimension of \fIarray_of_argv\fP is \fIcount\fP, a nonpositive value of \fIcount\fP at a nonroot node could theoretically cause a runtime bounds check error, even though \fIarray_of_argv\fP should be ignored by the subroutine. If this happens, you should explicitly supply a reasonable value of \fIcount\fP on the nonroot nodes. 
+.sp
+Calling MPI_Comm_spawn many times would create many sets of children with different MPI_COMM_WORLDs, whereas MPI_Comm_spawn_multiple creates children with a single MPI_COMM_WORLD, so the two methods are not completely equivalent. Also  if you need to spawn multiple executables, you may get better performance by using MPI_Comm_spawn_multiple instead of calling MPI_Comm_spawn several times.   
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_spawn(3)
+MPI_Comm_get_parent(3)
+mpirun(1)
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_split.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_split.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_split.3	(revision 97)
@@ -0,0 +1,91 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_split 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_split \fP \- Creates new communicators based on colors and keys.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_split(MPI_Comm \fIcomm\fP, int\fI color\fP, int\fI key\fP,
+	MPI_Comm *\fInewcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_SPLIT(\fICOMM, COLOR, KEY, NEWCOMM, IERROR\fP)
+	INTEGER	\fICOMM, COLOR, KEY, NEWCOMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Intercomm MPI::Intercomm::Split(int \fIcolor\fP, int \fIkey\fP) const
+
+MPI::Intracomm MPI::Intracomm::Split(int \fIcolor\fP, int \fIkey\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+.TP 1i
+color
+Control of subset assignment (nonnegative integer).
+.TP 1i
+key
+Control of rank assigment (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newcomm
+New communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function partitions the group associated with comm into disjoint subgroups, one for each value of color. Each subgroup contains all processes of the same color. Within each subgroup, the processes are ranked in the order defined by the value of the argument key, with ties broken according to their rank in the old group. A new communicator is created for each subgroup and returned in newcomm. A process may supply the color value MPI_UNDEFINED, in which case newcomm returns MPI_COMM_NULL. This is a collective call, but each process is permitted to provide different values for color and key. 
+.sp
+When you call MPI_Comm_split on an inter-communicator, the processes on the left with the same color as those on the right combine to create a new inter-communicator.  The key argument describes the relative rank of processes on each side of the inter-communicator.  The function returns MPI_COMM_NULL for  those colors that are specified on only one side of the inter-communicator, or for those that specify MPI_UNEDEFINED as the color.  
+.sp
+A call to MPI_Comm_create(\fIcomm\fP, \fIgroup\fP, \fInewcomm\fP) is equivalent to a call to MPI_Comm_split(\fIcomm\fP, \fIcolor\fP,\fI key\fP, \fInewcomm\fP), where all members of \fIgroup\fP provide \fIcolor\fP = 0 and \fIkey\fP = rank in group, and all processes that are not members of \fIgroup\fP provide \fIcolor\fP = MPI_UNDEFINED. The function MPI_Comm_split allows more general partitioning of a group into one or more subgroups with optional reordering. 
+.sp
+The value of \fIcolor\fP must be nonnegative or MPI_UNDEFINED.  
+
+.SH NOTES
+.ft R
+This is an extremely powerful mechanism for
+dividing a single communicating group of processes into k subgroups, with k
+chosen implicitly by the user (by the number of colors asserted over all
+the processes). Each resulting communicator will be nonoverlapping. Such a division could be useful for defining a hierarchy of computations, such as for multigrid or linear algebra.  
+.sp
+Multiple calls to MPI_Comm_split can be used to overcome the requirement that any call have no overlap of the resulting communicators (each process is of only one color per call). In this way, multiple overlapping communication structures can be created. Creative use of the color and key in such splitting operations is encouraged. 
+.sp
+Note that, for a fixed color, the keys need not be unique. It is MPI_Comm_split's responsibility to sort processes in ascending order according to this key, and to break ties in a consistent way. If all the keys are specified in the same way, then all the processes in a given color will have the relative rank order as they did in their parent group. (In general, they will have different ranks.)
+.sp
+Essentially, making the key value zero for all processes of a given color
+means that one needn't really pay attention to the rank-order of the processes in the new communicator.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_create
+.br
+MPI_Intercomm_create
+.br
+MPI_Comm_dup
+.br
+MPI_Comm_free
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_test_inter.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_test_inter.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Comm_test_inter.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Comm_test_inter 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Comm_test_inter \fP \- Tests to see if a comm is an intercommunicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Comm_test_inter(MPI_Comm \fIcomm\fP, int\fI *flag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_COMM_TEST_INTER(\fICOMM, FLAG, IERROR\fP)
+	INTEGER	\fICOMM, IERROR\fP
+	LOGICAL	\fIFLAG \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool Comm::Is_inter() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag     (Logical.)
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This local routine allows the calling process to determine the type of a communicator. It returns true for an intercommunicator, false for an intracommunicator. 
+.sp
+The type of communicator also affects the value returned by three other functions.  When dealing with an intracommunicator (enables communication within a single group), the functions listed below return the expected values, group size, group, and rank.  When dealing with an inter-communicator, however, they return the following values:
+.sp
+.nf
+MPI_Comm_size	Returns the size of the local group.
+MPI_Comm_group	Returns the local group.
+MPI_Comm_rank	Returns the rank in the local group.
+.fi
+.sp
+To return the remote group and remote group size of an inter-communicator, use the MPI_Comm_remote_group and MPI_Comm_remote_size functions.
+.sp
+The operation MPI_Comm_compare is valid for intercommunicators. Both communicators must be either intra- or intercommunicators, or else MPI_UNEQUAL results. Both corresponding local and remote groups must compare correctly to get the results MPI_CONGRUENT and MPI_SIMILAR. In particular, it is possible for MPI_SIMILAR to result because either the local or remote groups were similar but not identical. 
+.sp
+The following accessors provide consistent access to the remote group of an
+intercommunicator: MPI_Comm_remote_size, MPI_Comm_remote_group. 
+.sp
+The intercommunicator accessors (MPI_Comm_test_inter, MPI_Comm_remote_size, MPI_Comm_remote_group) are all local operations.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Comm_remote_group
+MPI_Comm_remote_size
+MPI_Intercomm_create
+MPI_Intercomm_merge
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Dims_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Dims_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Dims_create.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Dims_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Dims_create \fP \- Creates a division of processors in a Cartesian grid.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Dims_create(int \fInnodes\fP, int\fI ndims\fP, int\fI *dims\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_DIMS_CREATE(\fINNODES, NDIMS, DIMS, IERROR\fP)
+	INTEGER	\fINNODES, NDIMS, DIMS(*), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Compute_dims(int \fInnodes\fP, int \fIndims\fP, int \fIdims\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+nnodes
+Number of nodes in a grid (integer).
+.TP 1i
+ndims
+Number of Cartesian dimensions (integer).
+
+.SH IN/OUT PARAMETER
+.TP 1i
+dims
+Integer array of size ndims specifying the number of nodes in each dimension.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+For Cartesian topologies, the function MPI_Dims_create helps the user select a balanced distribution of processes per coordinate direction, depending on the number of processes in the group to be balanced and optional constraints that can be specified by the user. One use is to partition all the processes (the size of MPI_COMM_WORLD's group) into an n-dimensional topology. 
+.sp
+The entries in the array \fIdims\fP are set to describe a Cartesian grid with \fIndims\fP dimensions and a total of \fInnodes\fP nodes. The dimensions are set to be as close to each other as possible, using an appropriate divisibility algorithm. The caller may further constrain the operation of this routine by specifying elements of array dims. If dims[i] is set to a positive number, the routine will not modify the number of nodes in dimension i; only those entries where  dims[i] = 0 are modified by the call.   
+.sp
+Negative input values of dims[i] are erroneous. An error will occur if
+nnodes is not a multiple of ((pi) over (i, dims[i] != 0)) dims[i].   
+.sp
+For dims[i] set by the call, dims[i] will be ordered in nonincreasing order. Array dims is suitable for use as input to routine MPI_Cart_create. MPI_Dims_create is local. 
+.sp
+\fBExample:\fP
+.nf
+
+dims
+before					dims
+call		function call		on return
+-----------------------------------------------------
+(0,0)	MPI_Dims_create(6, 2, dims)	(3,2)
+(0,0)	MPI_Dims_create(7, 2, dims) 	(7,1)
+(0,3,0)	MPI_Dims_create(6, 3, dims)	(2,3,1)
+(0,3,0)	MPI_Dims_create(7, 3, dims)	erroneous call
+------------------------------------------------------
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_create.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Errhandler_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Errhandler_create \fP \- Creates an MPI-style error handler -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Errhandler_create(MPI_Handler_function *\fIfunction\fP,
+	MPI_Errhandler *\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERRHANDLER_CREATE(\fIFUNCTION, ERRHANDLER, IERROR\fP)
+	EXTERNAL	\fIFUNCTION\fP
+	INTEGER	\fIERRHANDLER, IERROR\fP
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+function
+User-defined error handling procedure.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_create_errhandler instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Registers the user routine function for use as an MPI exception handler. Returns in errhandler a handle to the registered exception handler. 
+.sp
+In the C language, the user routine should be a C function of type MPI_Handler_function, which is defined as
+.sp
+.nf
+    typedef void (MPI_Handler_function)(MPI_Comm *, int *, \&...); 
+.fi
+.sp
+The first argument is the communicator in use. The second is the error code
+to be returned by the MPI routine that raised the error. If the routine would have returned MPI_ERR_IN_STATUS, it is the error code returned in the status for the request that caused the error handler to be invoked. The remaining arguments are stdargs arguments whose number and meaning is implementation-dependent. An implementation should clearly document these arguments. Addresses are used so that the handler may be written in Fortran. 
+
+.SH NOTE
+.ft R
+The MPI-1 Standard states that an implementation may make the output value (errhandler) simply the address of the function. However, the action of MPI_Errhandler_ free makes this impossible, since it is required to set the value of the argument to MPI_ERRHANDLER_NULL. In addition, the actual error handler must remain until all communicators that use it are freed. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.br
+MPI_Comm_create_errhandler
+.br
+MPI_Comm_get_errhandler
+.br
+MPI_Comm_set_errhandler
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_free.3	(revision 97)
@@ -0,0 +1,58 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Errhandler_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Errhandler_free \fP \- Frees an MPI-style error handler.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Errhandler_free(MPI_Errhandler *\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERRHANDLER_FREE(\fIERRHANDLER, IERROR\fP)
+	INTEGER	\fIERRHANDLER, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Errhandler::Free() 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+errhandler
+MPI error handler (handle). Set to MPI_ERRHANDLER_NULL on exit.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Marks the error handler associated with errhandler for deallocation and sets errhandler to MPI_ERRHANDLER_NULL. The error handler will be deallocated after all communicators associated with it have been deallocated. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_create_errhandler
+.br
+MPI_Comm_get_errhandler
+.br
+MPI_Comm_set_errhandler
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_get.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Errhandler_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Errhandler_get \fP \- Gets the error handler for a communicator -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Errhandler_get(MPI_Comm \fIcomm\fP, MPI_Errhandler\fI *errhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERRHANDLER_GET(\fICOMM, ERRHANDLER, IERROR\fP)
+	INTEGER	\fICOMM, ERRHANDLER, IERROR\fP 
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator to get the error handler from (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler currently associated with communicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_get_errhandler instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Returns in errhandler (a handle to) the error handler that is currently associated with communicator comm.
+.sp
+\fBExample:\fP A library function may register at its entry point the current error handler for a communicator, set its own private error handler for this communicator, and restore before exiting the previous error handler.  
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_create_errhandler
+.br
+MPI_Comm_get_errhandler
+.br
+MPI_Comm_set_errhandler
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_set.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_set.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Errhandler_set.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Errhandler_set 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Errhandler_set \fP \- Sets the error handler for a communicator -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Errhandler_set(MPI_Comm \fIcomm\fP, MPI_Errhandler \fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERRHANDLER_SET(\fICOMM, ERRHANDLER, IERROR\fP)
+	INTEGER	\fICOMM, ERRHANDLER, IERROR\fP
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator to set the error handler for (handle).
+.TP 1i
+errhandler
+New MPI error handler for communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_set_errhandler instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Associates the new error handler errhandler with communicator comm at the calling process. Note that an error handler is always associated with the communicator. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_create_errhandler
+.br
+MPI_Comm_get_errhandler
+.br
+MPI_Comm_set_errhandler
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_class.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_class.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_class.3	(revision 97)
@@ -0,0 +1,56 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Error_class 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Error_class \fP \- Converts an error code into an error class.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Error_class(int \fIerrorcode\fP, int\fI *errorclass\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERROR_CLASS(\fIERRORCODE, ERRORCLASS, IERROR\fP)
+	INTEGER	\fIERRORCODE, ERRORCLASS, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Get_error_class(int \fIerrorcode\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+errorcode
+Error code returned by an MPI routine.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errorclass
+Error class associated with errorcode.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Error_class maps each standard error code (error class) onto itself.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Error_string
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_string.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_string.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Error_string.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Error_string 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Error_string \fP \- Returns a string for a given error code.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Error_string(int \fIerrorcode\fP, char\fI *string\fP, int\fI *resultlen\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ERROR_STRING(\fIERRORCODE, STRING, RESULTLEN, IERROR\fP)
+	INTEGER		\fIERRORCODE, RESULTLEN, IERROR\fP
+	CHARACTER*(*)	\fISTRING\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Get_error_string(int \fIerrorcode\fP, char* \fIname\fP, int& \fIresultlen\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+errorcode
+Error code returned by an MPI routine or an MPI error class.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+string
+Text that corresponds to the errorcode.
+.TP 1i
+resultlen
+Length of string.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Returns the error string associated with an error code or class. The argument string must represent storage that is at least MPI_MAX_ERROR_STRING characters long. 
+.sp
+The number of characters actually written is returned in the output
+argument, resultlen. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Error_class
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Exscan.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Exscan.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Exscan.3	(revision 97)
@@ -0,0 +1,127 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Exscan 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Exscan\fP \- Computes an exclusive scan (partial reduction)
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Exscan(void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP, 
+	MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SCAN(\fISENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fICOUNT, DATATYPE, OP, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Intracomm::Exscan(const void* \fIsendbuf\fP, void* \fIrecvbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP,
+	const MPI::Op& \fIop\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Send buffer (choice).
+.TP 1i
+count
+Number of elements in input buffer (integer).
+.TP 1i
+datatype
+Data type of elements of input buffer (handle).
+.TP 1i
+op
+Operation (handle).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Exscan is used to perform an exclusive prefix reduction on data
+distributed across the calling processes. The operation returns, in
+the \fIrecvbuf\fP of the process with rank i, the reduction
+(calculated according to the function \fIop\fP) of the values in the
+\fIsendbuf\fPs of processes with ranks 0, ..., i-1. Compare this with
+the functionality of MPI_Scan, which calculates over the range 0, ...,
+i (inclusive). The type of operations supported, their semantics, and
+the constraints on send and receive buffers are as for MPI_Reduce.
+.sp
+The value in \fIrecvbuf\fP on process 0 is undefined and unreliable
+as \fIrecvbuf\fP is not significant for process 0. The value of
+\fIrecvbuf\fP on process 1 is always the value in \fIsendbuf\fP on
+process 0.
+.sp
+No MPI_IN_PLACE operation is supported.
+
+.SH NOTES
+.ft R
+MPI does not specify which process computes which operation. In
+particular, both processes 0 and 1 may participate in the computation
+even though the results for both processes' \fIrecvbuf\fP are
+degenerate. Therefore, all processes, including 0 and 1, must provide
+the same \fIop\fP.
+.sp
+It can be argued, from a mathematical perspective, that the definition
+of MPI_Exscan is unsatisfactory because the output at process 0 is
+undefined.  The "mathematically correct" output for process 0 would be
+the unit element of the reduction operation. However, such a
+definition of an exclusive scan would not work with user-defined
+\fIop\fP functions as there is no way for MPI to "know" the unit value
+for these custom operations.
+
+.SH NOTES ON COLLECTIVE OPERATIONS
+.ft R
+The reduction functions of type MPI_Op do not return an error value.
+As a result, if the functions detect an error, all they can do is
+either call MPI_Abort or silently skip the problem. Thus, if the
+error handler is changed from MPI_ERRORS_ARE_FATAL to something else
+(e.g., MPI_ERRORS_RETURN), then no error may be indicated.
+.sp
+The reason for this is the performance problems in ensuring that
+all collective routines return the same error value.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Op_create
+MPI_Reduce
+MPI_Scan
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_call_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_call_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_call_errhandler.3	(revision 97)
@@ -0,0 +1,69 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_call_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_File_call_errhandler\fP \- Passes the supplied error code to the
+error handler assigned to a file
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_File_call_errhandler(MPI_File \fIfh\fP, int \fIerrorcode\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FILE_CALL_ERRHANDLER(\fIFH, ERRORCODE, IERROR\fP)
+	INTEGER	\fIFH, IERRORCODE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Call_errhandler(int \fIerrorcode\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+fh
+file with error handler (handle).
+.ft R
+.TP 1.4i
+errorcode
+MPI error code (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function invokes the error handler assigned to the file handle
+\fIfh\fP with the supplied error code \fIerrorcode\fP. If the error
+handler was successfully called, the process is not aborted, and the
+error handler returns, this function returns MPI_SUCCESS.
+.sp
+Unlike errors on communicators and windows, the default errorhandler
+for files is MPI_ERRORS_RETURN.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_File_create_errhandler
+MPI_File_set_errhandler
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_close.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_close.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_close.3	(revision 97)
@@ -0,0 +1,52 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_close 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_close\fP \- Closes a file (collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_close(MPI_File \fI*fh\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_CLOSE(\fIFH\fP,\fI IERROR\fP)
+        	 INTEGER	  FH, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Close()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_close first synchronizes file state, then closes the file
+associated with 
+.I fh. 
+MPI_File_close is a collective routine. The user is responsible for
+ensuring that all outstanding requests associated with
+.I fh
+have completed before calling MPI_File_close.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_create_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_create_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_create_errhandler.3	(revision 97)
@@ -0,0 +1,79 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_create_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_create_errhandler \fP \- Creates an MPI-style error handler that can be attached to a file. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_File_create_errhandler(MPI_File_errhandler_fn \fI*function\fP,
+	MPI_Errhandler \fI*errhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FILE_CREATE_ERRHANDLER(\fIFUNCTION, ERRHANDLER, IERROR\fP)
+	EXTERNAL	\fIFUNCTION\fP
+	INTEGER	\fIERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+#include <mpi.h>
+static MPI::Errhandler
+	MPI::File::Create_errhandler(MPI::File::Errhandler_fn*
+	\fIfunction\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+function
+User-defined error handling procedure (function).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Registers the user routine \fIfunction\fP for use as an MPI exception handler. Returns in errhandler a handle to the registered exception handler. 
+.sp
+In the C language, the user routine \fIfunction\fP should be a C function of type MPI_File_errhandler_fn, which is defined as
+.sp
+.nf
+    typedef void (MPI_File_errhandler_fn)(MPI_File *, int *, 
+    \&...); 
+.fi
+.sp
+The first argument to \fIfunction\fP is the file in use. The second is the error code
+to be returned by the MPI routine that raised the error. 
+.sp
+In the Fortran language, the user routine should be of the form:
+.sp
+.nf
+    SUBROUTINE FILE_ERRHANDLER_FN(FILE, ERROR_CODE, ...)
+        INTEGER FILE, ERROR_CODE
+.fi
+.sp
+In C++, the user routine \fIfunction\fP should be of the form:
+.sp
+.nf
+    typedef void MPI::File::Errhandler_fn(MPI::File &, int *, 
+    ...);
+.fi
+.sp
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_delete.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_delete.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_delete.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_delete 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_delete\fP \- Deletes a file.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_delete(char \fI*filename\fP, MPI_Info \fIinfo\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_DELETE(\fIFILENAME\fP, \fIINFO\fP, \fIIERROR\fP)
+   	 CHARACTER*(*) \fIFILENAME\fP
+    	 INTEGER \fIINFO, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void MPI::File::Delete(const char* \fIfilename\fP, const 
+	MPI::Info& \fIinfo\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+filename
+Name of file to delete (string).
+.TP 1i
+info
+Info object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_delete deletes the file identified by the file name 
+\fIfilename\fP, provided it is not currently open by any process. It is an error to delete the file with MPI_File_delete if some process has it open, but MPI_File_delete does not check this. If the file does not exist, MPI_File_delete returns an error in the class MPI_ERR_NO_SUCH_FILE.
+.sp
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_amode.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_amode.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_amode.3	(revision 97)
@@ -0,0 +1,52 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_amode 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_amode\fP \- Returns access mode associated with an open file.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_amode(MPI_File \fIfh\fP, int \fI*amode\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_AMODE(\fIFH\fP,\fI AMODE\fP, \fI IERROR\fP)
+        	 INTEGER	FH, AMODE, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::File::Get_amode() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+amode
+File access mode used to open the file (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+MPI_File_get_amode returns, in 
+.I amode,
+the access mode associated with the open file 
+.I fh.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_atomicity.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_atomicity.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_atomicity.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_atomicity 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_atomicity\fP \- Returns current consistency semantics for data-access operations.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_atomicity(MPI_File \fIfh\fP, int \fI*flag\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_ATOMICITY(\fIFH\fP,\fI FLAG\fP,\fI IERROR\fP)
+	INTEGER \FIFH, IERROR\FP 
+	LOGICAL \FIFLAG\FP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::File::Get_atomicity() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+flag
+true if atomic mode is enabled, false if nonatomic mode is enabled (boolean).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_atomicity returns the current consistency semantics for
+data access operations on the set of file handles created by one
+collective MPI_File_open. If \fIflag\fP is 
+.I true,
+atomic mode is currently enabled; if 
+.I flag 
+is 
+.I false,
+nonatomic mode is currently enabled. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_byte_offset.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_byte_offset.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_byte_offset.3	(revision 97)
@@ -0,0 +1,71 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_byte_offset 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_byte_offset\fP \- Converts a view-relative offset into an absolute byte position.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_byte_offset(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP,
+    	      MPI_Offset \fI*disp\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_BYTE_OFFSET(\fIFH\fP, \fIOFFSET\fP, \fIDISP\fP,\fI IERROR\fP)
+        	INTEGER	\fIFH, IERROR\fP
+		INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET, DISP\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Offset MPI::File::Get_byte_offset(const MPI::Offset \fIdisp\fP) 
+	const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.ft R
+.TP 1i
+offset
+Offset (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+disp
+Absolute byte position of offset (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_byte_offset converts an offset specified for the current view to its corresponding displacement value, or absolute byte position, from the beginning of the file. The absolute byte position of \fIoffset\fP relative to the current view of \fIfh\fP is returned in \fIdisp\fP. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP and \fIDISP\fP arguments only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+or
+     INTEGER*MPI_OFFSET_KIND \fIDISP\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_errhandler.3	(revision 97)
@@ -0,0 +1,51 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_errhandler \fP \- Gets the error handler for a file. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_File_get_errhandler(MPI_File \fIfile\fP, MPI_Errhandler\fI 
+	*errhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FILE_GET_ERRHANDLER(\fIFILE, ERRHANDLER, IERROR\fP)
+	INTEGER	\fIFILE, ERRHANDLER, IERROR\fP 
+
+.SH C++ Syntax
+#include <mpi.h>
+.nf
+MPI::Errhandler MPI::File::Get_errhandler() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+file
+File (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler currently associated with file (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Returns in \fIerrhandler\fP (a handle to) the error handler that is currently associated with file \fIfile\fP. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_group.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_group.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_group.3	(revision 97)
@@ -0,0 +1,54 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_group 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_group\fP \- Returns a duplicate of the process group of a file.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_group(MPI_File \fIfh\fP, MPI_Group \fI*group\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_GROUP(\fIFH\fP,\fI GROUP\fP, \fI IERROR\fP)
+        	 INTEGER	  FH, GROUP, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Group MPI::File::Get_group() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.TP 1i
+group
+Group that opened the file (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_group returns a duplicate of the group of the communicator
+used to open the file associated with 
+.I fh.
+The group is returned in 
+.I group.
+The user is responsible for freeing 
+.I group, 
+using MPI_Group_free. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_info.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_info.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_info.3	(revision 97)
@@ -0,0 +1,90 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_info 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_info\fP \- Returns a new info object containing values for current hints associated with a file. 
+
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_info(MPI_File \fIfh\fP, MPI_Info \fI*info_used\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_INFO(\fIFH\fP, \fIINFO_USED\fP, \fIIERROR\fP)
+        	 INTEGER	  FH, INFO_USED, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Info MPI::File::Get_info() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+info_used
+New info object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_info returns a new info object containing all the hints that the system currently associates with the file \fIfh\fP. The current setting of all hints actually used by the system related to this open file is returned in \fIinfo_used\fP. The user is responsible for freeing \fIinfo_used\fP via MPI_Info_free. 
+
+Note that the set of hints returned in \fIinfo_used\fP may be greater or smaller than the set of hints passed in to MPI_File_open, MPI_File_set_view, and MPI_File_set_info, as the system may not recognize some hints set by the user, and may automatically set other hints that the user has not requested to be set. See the HINTS section for a list of hints that can be set. 
+
+.SH HINTS
+.ft R
+The following hints can be used as values for the \fIinfo_used\fP argument. 
+.sp
+SETTABLE HINTS:
+.sp
+- shared_file_timeout: Amount of time (in seconds) to wait for access to the 
+shared file pointer before exiting with MPI_ERR_TIMEDOUT.
+.sp
+- rwlock_timeout: Amount of time (in seconds) to wait for obtaining a read or 
+write lock on a contiguous chunk of a UNIX file before exiting with MPI_ERR_TIMEDOUT.
+.sp 
+- noncoll_read_bufsize:  Maximum size of the buffer used by
+MPI I/O to satisfy  read requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- noncoll_write_bufsize: Maximum size of the buffer used by
+MPI I/O to satisfy write requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- coll_read_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy read requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+- coll_write_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy write requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+NOTE: A buffer size smaller than the distance (in bytes) in a UNIX file between the first byte and the last byte of the access request causes MPI I/O to iterate and perform multiple UNIX read() or write() calls. If the request includes multiple noncontiguous chunks of data, and the buffer size is greater than the size of those chunks, then the UNIX read() or write() (made at the MPI I/O level) will access data not requested by this process in order to reduce the total number of write() calls made. If this is not desirable behavior, you should reduce this buffer size to equal the size of the contiguous chunks within the aggregate request.
+.sp
+- mpiio_concurrency: (boolean) controls whether nonblocking
+I/O routines can bind an extra thread to an LWP.
+.sp
+- mpiio_coll_contiguous: (boolean) controls whether subsequent collective data accesses will request collectively contiguous regions of the file.
+.sp
+NON-SETTABLE HINTS: 
+.sp
+- filename: Access this hint to get the name of the file. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_position 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_position\fP \- Returns the current position of the individual file pointer.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_position(MPI_File \fIfh\fP, MPI_Offset \fI*offset\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_POSITION(\fIFH\fP,\fI OFFSET\fP,\fI IERROR\fP)
+    	      INTEGER \fIFH, IERROR\fP
+    	      INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Offset MPI::File::Get_position() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+offset
+Offset of the individual file pointer (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_position returns, in 
+.I offset,
+the current position of the individual file pointer in 
+.I etype 
+units relative to the current displacement and file type. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_position_shared.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_position_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_position_shared\fP \- Returns the current position of the shared file pointer.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_position_shared(MPI_File \fIfh\fP, MPI_Offset \fI*offset\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_POSITION_SHARED(\fIFH\fP,\fI OFFSET\fP,\fI IERROR\fP)
+    	      INTEGER \fIFH, IERROR\fP 
+    	      INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Offset MPI::File::Get_position_shared() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+offset
+Offset of the shared file pointer (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_position_shared returns, in 
+.I offset,
+the current position of the shared file pointer in 
+.I etype 
+units relative to the current displacement and file type. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_size.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_size\fP \- Returns the current size of the file.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_size(MPI_File \fIfh\fP, MPI_Offset \fI*size\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_SIZE(\fIFH\fP,\fI SIZE\fP, \fI IERROR\fP)
+	INTEGER \fIFH, ERROR\fP
+	INTEGER(KIND=MPI_OFFSET_KIND) \fISIZE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Offset MPI::File::Get_size() const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+size
+Size of the file in bytes (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_size returns, in 
+.I size
+, the current size in bytes of the file associated with the file handle 
+\fIfh\fP. Note that the file size returned by Solaris may not represent the number of bytes physically allocated for the file in those cases where all bytes in this file have not been written at least once. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fISIZE\fP argument only for Fortran 90. Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fISIZE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.br
+MPI_File_preallocate
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_type_extent.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_type_extent.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_type_extent.3	(revision 97)
@@ -0,0 +1,73 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_type_extent 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_type_extent\fP \- Returns the extent of the data type in a file. 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_type_extent(MPI_File \fIfh\fP, MPI_Datatype 
+    	      \fIdatatype\fP, MPI_Aint \fI*extent\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_TYPE_EXTENT(\fIFH\fP, \fIDATATYPE\fP, \fIEXTENT\fP, \fI IERROR\fP)
+        	INTEGER	\fIFH, DATATYPE, IERROR\fP
+		INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTENT\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Aint MPI::File::Get_type_extent(const MPI::Datatype& 
+	\fIdatatype\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.ft R
+.TP 1i
+datatype
+Data type (handle).
+
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+extent
+Data type extent (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_get_type_extent can be used to calculate \fIextent\fP for \fIdatatype\fP in the file. The extent is the same for all processes accessing the file associated with \fIfh\fP. If the current view uses a user-defined data representation, MPI_File_get_type_extent uses the \fIdtype_file_extent_fn\fP callback to calculate the extent. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIEXTENT\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIEXTENT\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+.ft R
+If the file data representation is other than "native," care must be taken in constructing etypes and file types. Any of the data-type constructor functions may be used; however, for those functions that accept displacements in bytes, the displacements must be specified in terms of their values in the file for the file data representation being used. MPI will interpret these byte displacements as is; no scaling will be done. The function MPI_File_get_type_extent can be used to calculate the extents of data types in the file. For etypes and  file types that are portable data types, MPI will scale any displacements in the data types to match the file data representation. Data types passed as arguments to read/write routines specify the data layout in memory; therefore, they must always be constructed using displacements corresponding to displacements in memory. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_view.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_view.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_get_view.3	(revision 97)
@@ -0,0 +1,86 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_get_view 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_get_view\fP \- Returns the process's view of data in the file.
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_get_view(MPI_File \fIfh\fP, MPI_Offset \fI*disp\fP,
+    	      MPI_Datatype \fI*etype\fP, MPI_Datatype \fI*filetype\fP,
+              char \fI*datarep\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_GET_VIEW(\fIFH\fP,\fI DISP\fP,\fI ETYPE\fP,
+    	      \fI FILETYPE\fP, \fIDATAREP\fP, \fI IERROR\fP)
+    	 INTEGER \fIFH, ETYPE, FILETYPE, IERROR\fP
+	 CHARACTER*(*) \fIDATAREP\fP
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIDISP\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Get_view(MPI::Offset& \fIdisp\fP,
+	MPI::Datatype& \fIetype\fP,
+	MPI::Datatype& \fIfiletype\fP, char* \fIdatarep\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+disp  
+Displacement (integer).
+.TP 1i
+etype 
+Elementary data type (handle). 
+.TP 1i
+filetype
+File type (handle). See Restrictions, below.
+.TP 1i
+datarep
+Data representation (string). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The MPI_File_get_view routine returns the process's view of the data
+in the file. The current values of the displacement, etype, and
+filetype are returned in 
+.I disp,
+.I etype,
+and 
+.I filetype,
+respectively.
+.sp
+The MPI_File_get_view interface allows the user to pass a data-representation string via the \fIdatarep\fP argument.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIDISP\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax.
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIDISP\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread.3	(revision 97)
@@ -0,0 +1,79 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iread 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iread\fP \- Reads a file starting at the location specified by the individual file pointer (nonblocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_iread(MPI_File \fIfh\fP, void  \fI*buf\fP, int  \fIcount\fP, 
+    	      MPI_Datatype  \fIdatatype\fP, MPI_Request  \fI*request\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_IREAD(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, REQUEST, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iread(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in the buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+request
+Request object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iread is a nonblocking version of MPI_File_read. It attempts to read from the file associated with 
+.I fh
+at the current individual file pointer position maintained by the system in which a total number of 
+.I count
+data items having 
+.I datatype
+type  are read into the user's buffer 
+.I buf.
+The data is taken out of those parts of the
+file specified by the current view. MPI_File_iread stores the
+number of data-type elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined. It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_at.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_at.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_at.3	(revision 97)
@@ -0,0 +1,105 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iread_at 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iread_at\fP \- Reads a file at an explicitly specified offset (nonblocking, noncollective). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_iread_at(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, 
+    	      void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+    	      MPI_Request \fI*request\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_IREAD_AT(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP, \fIIERROR\fP)
+		<type> \fIBUF\fP(*)
+        	INTEGER	\fIFH, COUNT, DATATYPE, REQUEST, IERROR\fP
+		INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iread_at(MPI::Offset \fIoffset\fP, void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.ft R
+.TP 1i
+offset
+File offset (integer). 
+.ft R
+.TP 1i
+count
+Number of elements in the buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of the buffer (choice).
+.ft R
+.TP 1i
+request
+Request object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iread_at is the nonblocking version of MPI_File_read_at.
+
+MPI_File_iread_at is a nonblocking routine that attempts to read from the file associated with 
+.I fh
+at the 
+.I offset
+position a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The 
+.I offset
+is in etype units relative to the current view. That is, holes are not counted
+when locating an offset. The data is taken out of those parts of the
+file specified by the current view. MPI_File_iread_at stores the
+number of 
+.I datatype
+elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iread_shared.3	(revision 97)
@@ -0,0 +1,65 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iread_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iread_shared\fP \- Reads a file using the shared file pointer (nonblocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_iread_shared(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP, 
+    	      MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_IREAD_SHARED(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, REQUEST, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iread_shared(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+request
+Request object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iread_shared is a nonblocking version of the MPI_File_read_shared interface. It uses the shared file pointer to read files. The order of serialization among the processors is not deterministic for this noncollective routine, so you need to use other methods of synchronization to impose a particular order among processors. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite.3	(revision 97)
@@ -0,0 +1,83 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iwrite 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iwrite\fP \- Writes a file starting at the location specified by the individual file pointer (nonblocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_iwrite(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP, 
+    	      MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_IWRITE(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
+		<TYPE>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, REQUEST, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iwrite(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+request
+Request object (handle). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iwrite is a nonblocking version of the MPI_File_write interface. It attempts to write into the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The data is written into those parts of the
+file specified by the current view. MPI_File_iwrite stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined.
+.sp
+It is erroneous to call this function if MPI_MODE_SEQENTIAL mode was specified when the file was open. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_at.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_at.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_at.3	(revision 97)
@@ -0,0 +1,106 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iwrite_at 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iwrite_at\fP \- Writes a file at an explicitly specified offset (nonblocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_iwrite_at(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, 
+    	      void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Request \fI*request\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_IWRITE_AT(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP, \fIIERROR\fP)
+        	<type> \fIBUF\fP(*)
+        	INTEGER	\fIFH, COUNT, DATATYPE, REQUEST, IERROR\fP
+		INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iwrite_at(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+offset
+File offset (integer).
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Request object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iwrite_at is a nonblocking version of MPI_File_write_at. It attempts to write into the file associated with 
+.I fh
+(at the 
+.I offset 
+position) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The offset is in 
+.I etype
+units relative to the current view. That is, holes are not counted
+when locating an offset. The data is written into those parts of the
+file specified by the current view. MPI_File_iwrite_at stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined. The request structure can be passed to MPI_Wait or MPI_Test, which will return a status with the number of bytes actually accessed. 
+.sp
+It is erroneous to call this function if MPI_MODE_SEQENTIAL mode was specified when the file was open. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_iwrite_shared.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_iwrite_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_iwrite_shared\fP \- Writes a file using the shared file pointer (nonblocking, noncollective).
+
+
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP, MPI_Datatype 
+    	      \fIdatatype\fP, MPI_Request \fI*request\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_File_(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fIREQUEST\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, REQUEST, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Request MPI::File::Iwrite_shared(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+request
+Request object (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_iwrite_shared is a nonblocking routine that uses the shared file pointer to write files. The order of serialization is not deterministic for this noncollective routine, so you need to use other methods of synchronization to impose a particular order. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_open.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_open.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_open.3	(revision 97)
@@ -0,0 +1,171 @@
+
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_open 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_open\fP \- Opens a file (collective).
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_open(MPI_Comm \fIcomm\fP, char \fI*filename\fP,
+    	      int \fIamode\fP, MPI_Info \fIinfo\fP, 
+	      MPI_File \fI*fh\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_OPEN(\fICOMM\fP,\fI FILENAME\fP,\fI AMODE\fP, \fIINFO\fP,\fI FH\fP,\fI IERROR\fP)
+   	 CHARACTER*(*)    FILENAME
+    	 INTEGER      COMM, AMODE, INFO, FH, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::File MPI::File::Open(const MPI::Intracomm& \fIcomm\fP,
+	const char* \fIfilename\fP, int \fIamode\fP, const MPI::Info& \fIinfo\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm  
+Communicator (handle).
+.TP 1i
+filename
+Name of file to open (string). 
+.TP 1i
+amode 
+File access mode (integer).
+.TP 1i
+info
+Info object (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+New file handle (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_open opens the file identified by the filename 
+.I
+filename
+on all processes in the 
+.I comm
+communicator group. MPI_File_open is a collective routine; all processes
+must provide the same value for
+.I amode,
+and all processes must provide filenames that reference the same
+file and which are textually identical. A process can open a file
+independently of other processes by using the MPI_COMM_SELF
+communicator. The file handle returned, 
+.I fh,
+can be subsequently used to access the file until the file is closed
+using MPI_File_close. Before calling MPI_Finalize, the user is required to
+close (via MPI_File_close) all files that were opened with MPI_File_open. Note
+that the communicator 
+.I comm 
+is unaffected by MPI_File_open and continues to be usable in all MPI
+routines. Furthermore, use of 
+.I comm 
+will not interfere with I/O behavior.
+.sp
+Initially, all processes view the file as a linear byte stream; that is, the 
+.I etype 
+and 
+.I filetype
+are both MPI_BYTE. The file view can be changed via the MPI_File_set_view routine.
+.sp
+The following access modes are supported (specified in amode, in a bit-vector OR in one of the following integer constants):
+.TP .5i
+  o  
+MPI_MODE_APPEND
+.TP .5i
+  o 
+MPI_MODE_CREATE -- Create the file if it does not exist.
+.TP .5i
+  o  
+MPI_MODE_DELETE_ON_CLOSE
+.TP .5i
+  o  
+MPI_MODE_EXCL -- Error creating a file that already exists. 
+.TP .5i
+  o  
+MPI_MODE_RDONLY -- Read only.
+.TP .5i
+  o 
+MPI_MODE_RDWR -- Reading and writing.
+.TP .5i
+  o  
+MPI_MODE_SEQUENTIAL
+.TP .5i
+  o 
+MPI_MODE_WRONLY -- Write only.
+.TP .5i
+  o  
+MPI_MODE_UNIQUE_OPEN
+.RE
+.sp
+The modes MPI_MODE_RDONLY, MPI_MODE_RDWR, MPI_MODE_WRONLY, and MPI_MODE_CREATE have
+identical semantics to their POSIX counterparts. It is erroneous to
+specify MPI_MODE_CREATE in conjunction with MPI_MODE_RDONLY. Errors related to
+the access mode are raised in the class MPI_ERR_AMODE.
+.sp
+On single-node clusters, files are opened by default using nonatomic mode file consistency
+semantics. The more stringent atomic-mode consistency semantics, required for atomicity of overlapping accesses, are the default when processors in a communicator group reside on more than one node. 
+This setting can be changed using
+MPI_File_set_atomicity.
+.sp
+The MPI_File_open interface allows the user to pass information via the \fIinfo\fP argument. It can be set to MPI_INFO_NULL. See the HINTS section for a list of hints that can be set. 
+
+.SH HINTS
+.ft R
+The following hints can be used as values for the \fIinfo\fP argument. 
+.sp
+SETTABLE HINTS:
+.sp
+- MPI_INFO_NULL
+.sp
+- shared_file_timeout: Amount of time (in seconds) to wait for access to the 
+shared file pointer before exiting with MPI_ERR_TIMEDOUT.
+.sp
+- rwlock_timeout: Amount of time (in seconds) to wait for obtaining a read or 
+write lock on a contiguous chunk of a UNIX file before exiting with MPI_ERR_TIMEDOUT.
+.sp 
+- noncoll_read_bufsize:  Maximum size of the buffer used by
+MPI I/O to satisfy multiple noncontiguous read requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- noncoll_write_bufsize: Maximum size of the buffer used by
+MPI I/O to satisfy multiple noncontiguous write requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- coll_read_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy multiple noncontiguous read requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+- coll_write_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy multiple noncontiguous write requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+NOTE: A buffer size smaller than the distance (in bytes) in a UNIX file between the first byte and the last byte of the access request causes MPI I/O to iterate and perform multiple UNIX read() or write() calls. If the request includes multiple noncontiguous chunks of data, and the buffer size is greater than the size of those chunks, then the UNIX read() or write() (made at the MPI I/O level) will access data not requested by this process in order to reduce the total number of write() calls made. If this is not desirable behavior, you should reduce this buffer size to equal the size of the contiguous chunks within the aggregate request.
+.sp
+- mpiio_concurrency: (boolean) controls whether nonblocking
+I/O routines can bind an extra thread to an LWP.
+.sp
+- mpiio_coll_contiguous: (boolean) controls whether subsequent collective data accesses will request collectively contiguous regions of the file.
+.sp
+NON-SETTABLE HINTS: 
+.sp
+- filename: Access this hint to get the name of the file. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_preallocate.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_preallocate.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_preallocate.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_preallocate 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_preallocate\fP \- Preallocates a specified amount of storage space  at the beginning of a file (collective). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_preallocate(MPI_File \fIfh\fP, MPI_Offset \fIsize\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_PREALLOCATE(\fIFH\fP, \fISIZE\fP, \fIIERROR\fP)
+        	 INTEGER \fIFH, IERROR\fP
+		 INTEGER(KIND=MPI_OFFSET_KIND) \fISIZE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Preallocate(MPI::Offset \fIsize\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+size
+Size to preallocate file, in bytes (integer). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_preallocate ensures that storage space is allocated for the first \fIsize\fP bytes of the file associated with \fIfh\fP. MPI_File_preallocate can be a very time-consuming operation. 
+
+MPI_File_preallocate is collective; all processes in the group must pass identical values for \fIsize\fP. Regions of the file that have previously been written are unaffected. For newly allocated regions of the file, MPI_File_preallocate has the same effect as writing undefined data. If size is larger than the current file size, the file size increases to \fIsize\fP. If \fIsize\fP is less than or equal to the current file size, the file size is unchanged. 
+
+The treatment of file pointers, pending nonblocking accesses, and file consistency is the same as with MPI_File_set_size. If MPI_MODE_SEQUENTIAL mode was specified when the file was opened, it is erroneous to call this routine.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fISIZE\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fISIZE\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+.ft R
+When using the collective routine MPI_File_set_size on a UNIX file, if the size that is set is smaller than the current file size, the file is truncated at the position defined by size. If the size is set to be larger than the current file size, the file size becomes the set size. When the file size is increased this way with MPI_File_set_size, new regions are created in the file with displacements between the old file size and the larger, newly set file size. 
+.sp
+Sun MPI I/O does not necessarily allocate file space for such new regions. You may reserve file space either by using MPI_File_preallocate or by performing a read or write to certain bytes. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read.3	(revision 97)
@@ -0,0 +1,81 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read\fP \- Reads a file starting at the location specified by the individual file pointer (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ(\fI FH\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fIIERROR\fP)
+	 <type>         BUF(*)
+    	 INTEGER	FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), 
+			IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read(void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read(void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (integer).
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read attempts to read from the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The data is taken out of those parts of the
+file specified by the current view. MPI_File_read stores the
+number of data-type elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined. 
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all.3	(revision 97)
@@ -0,0 +1,82 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_all 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_all\fP \- Reads a file starting at the locations specified by individual file pointers (blocking, collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_all(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ALL(\fI FH\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type>		BUF(*)
+    	 INTEGER	FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), 
+			IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_all(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_all(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_all is a collective routine that attempts to read from the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The data is taken out of those parts of the
+file specified by the current view. MPI_File_read_all stores the
+number of data-type elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined. 
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_begin.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_all_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_all_begin\fP \- Reads a file starting at the locations specified by individual file pointers; beginning part of a split collective routine (nonblocking). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_all_begin(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ALL_BEGIN(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<TYPE>		\fIBUF\fP(*)
+        	INTEGER		\fIFH, COUNT, DATATYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_all_begin(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_all_begin is the beginning part of a split collective operation that attempts to read from the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The data is taken out of those parts of the
+file specified by the current view. 
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_all_end.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_all_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_all_end\fP \- Reads a file starting at the locations specified by individual file pointers; ending part of a split collective routine (blocking). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_all_end(MPI_File \fIfh\fP, void \fI*buf\fP, 
+	MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_all_end(void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_all_end(void* \fIbuf\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+status
+Status object (status). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_all_end is the ending part of a split collective operation that stores the number of elements actually read from the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) 
+into the user's buffer 
+.I buf
+in 
+.I status.
+The data is taken out of those parts of the
+file specified by the current view. All other fields of 
+.I status
+are undefined.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at.3	(revision 97)
@@ -0,0 +1,107 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_at 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_at\fP \- Reads a file at an explicitly specified offset (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_at(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, 
+	void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+	MPI_Status \fI*status\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_AT(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fIIERROR\fP)
+	 <type>	\fIBUF\fP(*)
+    	 INTEGER \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_at(MPI::Offset \fIoffset\fP, void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, 
+	MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_at(MPI::Offset \fIoffset\fP, void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+offset
+File offset (integer).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+MPI_File_read_at attempts to read from the file associated with 
+.I fh
+(at the 
+.I offset
+position) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The 
+.I offset
+is in 
+.I etype
+units relative to the current view. That is, holes are not counted
+when locating an offset. The data is taken out of those parts of the
+file specified by the current view. MPI_File_read_at stores the
+number of 
+.I datatype
+elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined. It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all.3	(revision 97)
@@ -0,0 +1,103 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_at_all 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_at_all\fP \- Reads a file at explicitly specified offsets (blocking, collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_at_all(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, 
+	void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+	MPI_Status \fI*status\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_AT_ALL(\fIFH\fP, \fI OFFSET\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type> \fIBUF\fP(*)
+    	 INTEGER \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_at_all(MPI::Offset \fIoffset\fP, void* \fIbuf\fP, 
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_at_all(MPI::Offset \fIoffset\fP, void* \fIbuf\fP, 
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+offset
+File offset (integer).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_at_all is a collective routine that attempts to read from the file associated with 
+.I fh
+(at the 
+.I offset
+position) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The 
+.I offset
+is in etype units relative to the current view. That is, holes are not counted
+when locating an offset. The data is taken out of those parts of the
+file specified by the current view. MPI_File_read_at_all stores the
+number of 
+.I datatype
+elements actually read in 
+.I status.
+All other fields of 
+.I status
+are undefined. It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_begin.3	(revision 97)
@@ -0,0 +1,97 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_at_all_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_at_all_begin\fP \- Reads a file at explicitly specified offsets; beginning part of a split collective routine (nonblocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_at_all_begin(MPI_File \fIfh\fP, MPI_Offset 
+	\fIoffset\fP, void \fI*buf\fP, int \fIcount\fP, MPI_Datatype 
+	\fIdatatype\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_AT_ALL_BEGIN(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, 
+	\fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<type> \fIBUF\fP(*)
+        	INTEGER	\fIFH, COUNT, DATATYPE, IERROR\fP
+		INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_at_all_begin(MPI::Offset \fIoffset\fP, void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.ft R
+.TP 1i
+offset
+File offset (integer).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_at_all_begin is the beginning part of a split collective routine that attempts to read from the file associated with 
+.I fh
+(at the 
+.I offset
+position) a total number of 
+.I count
+data items having 
+.I datatype
+type into the user's buffer 
+.I buf.
+The 
+.I offset
+is in etype units relative to the current view. That is, holes are not counted
+when locating an offset. The data is taken out of those parts of the
+file specified by the current view. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_at_all_end.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_at_all_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_at_all_end\fP \- Reads a file at explicitly specified offsets; ending part of a split collective routine (blocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_at_all_end(MPI_File \fIfh\fP, void \fI*buf\fP, 
+	MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_AT_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<TYPE>		BUF(*)
+        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_at_all_end(void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_at_all_end(void* \fIbuf\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+status
+Status object (status). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_at_all_end is a split collective routine that stores the number of elements actually read from the file associated with 
+.I fh
+in 
+.I status.
+MPI_File_read_at_all_end blocks until the operation initiated by MPI_File_read_at_all_begin completes. The data is taken out of those parts of the file specified by the current view. All other fields of 
+.I status
+are undefined.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered.3	(revision 97)
@@ -0,0 +1,86 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_ordered 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_ordered\fP \- Reads a file at a location specified by a shared file pointer (blocking, collective).
+
+.SH SYNTAX
+.ft R
+C Syntax
+.nf
+    #include <mpi.h>
+    int MPI_File_read_ordered(MPI_File \fIfh\fP, void \fI*buf\fP,
+    	      	   int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+    	      	   MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ORDERED(\fIFH\fP,\fI BUF\fP,\fI COUNT\fP,\fI DATATYPE\fP,
+    	      	   \fISTATUS\fP,\fI IERROR\fP)
+    	      <type>	  \fIBUF\fP(*)
+    	      INTEGER 	  \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_ordered(void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_ordered(void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+status
+Status object (Status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+MPI_File_read_ordered is a collective routine. This routine must be
+called by all processes in the communicator group associated with the
+file handle 
+.I fh.
+Each process may pass different argument values for the 
+.I datatype 
+and 
+.I count 
+arguments. Each process attempts to read, from the file associated with 
+.I fh,
+a total number of 
+.I count 
+data items having 
+.I datatype 
+type into the user's buffer 
+.I buf.
+For each process, the location in the file at which data is read is the position at which the shared file pointer would be after all processes whose ranks within the group are less than that of this process had read their data. MPI_File_read_ordered returns the actual number of 
+.I datatype 
+elements read in 
+.I status.
+The shared file pointer is updated by the amounts of data requested by all processes of the group.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_begin.3	(revision 97)
@@ -0,0 +1,81 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_ordered_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_ordered_begin\fP \- Reads a file at a location specified by a shared file pointer; beginning part of a split collective routine (nonblocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_ordered_begin(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ORDERED_BEGIN(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_ordered_begin(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_ordered_begin is the beginning part of a split collective, nonblocking routine that must be
+called by all processes in the communicator group associated with the
+file handle 
+.I fh.
+Each process may pass different argument values for the 
+.I datatype 
+and 
+.I count 
+arguments. Each process attempts to read, from the file associated with 
+.I fh,
+a total number of 
+.I count 
+data items having 
+.I datatype 
+type into the user's buffer 
+.I buf.
+For each process, the location in the file at which data is read is the position at which the shared file pointer would be after all processes whose ranks within the group are less than that of this process had read their data. 
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_ordered_end.3	(revision 97)
@@ -0,0 +1,67 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_ordered_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_ordered_end\fP \- Reads a file at a location specified by a shared file pointer; ending part of a split collective routine (blocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_ordered_end(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_ORDERED_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_ordered_end(void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_ordered_end(void* \fIbuf\fP) 
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_ordered_end is the ending part of a split collective routine that must be called by all processes in the communicator group associated with the
+file handle 
+.I fh. 
+MPI_File_rad_ordered_end blocks until the operation initiated by MPI_File_read_ordered_begin completes. It attempts to read the file associated with 
+.I fh
+into the user's buffer 
+.I buf.
+The shared file pointer is updated by the amounts of data requested by all processes of the group. For each process, the location in the file at which data is read is the position at which the shared file pointer would be after all processes whose ranks within the group are less than that of this process had read their data. 
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_read_shared.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_read_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_read_shared\fP \- Reads a file using the shared file pointer (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_read_shared(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP, 
+MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_READ_SHARED(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fISTATUS\fP, 
+	\fIIERROR\fP)
+		<TYPE>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, 
+				STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Read_shared(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Read_shared(void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer)
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_read_shared is a blocking routine that uses the shared file pointer to read files. The order of serialization is not deterministic for this noncollective routine.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_seek 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_seek\fP \- Updates individual file pointers (noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_seek(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP,
+    	      	   int \fIwhence\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_SEEK(\fIFH\fP,\fI OFFSET\fP,\fI WHENCE\fP,\fI IERROR\fP)
+    	      INTEGER \fIFH, WHENCE, IERROR\fP
+    	      INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Seek(MPI::Offset \fIoffset\fP, int \fIwhence\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+offset 
+File offset (integer).
+.TP 1i
+whence
+Update mode (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_seek updates the individual file pointer according to 
+.I whence,
+which could have the following possible values:
+.TP
+  o  
+MPI_SEEK_SET - The pointer is set to 
+.I offset.
+.TP
+  o  
+MPI_SEEK_CUR - The pointer is set to the current pointer position plus 
+.I offset.
+.TP
+  o  
+MPI_SEEK_END - The pointer is set to the end of the file plus 
+.I offset.
+.sp
+.RE
+The 
+.I offset 
+can be negative, which allows seeking backwards. It is erroneous to
+seek to a negative position in the file. The end of the file is
+defined to be the location of the next elementary data item
+immediately after the last accessed data item, even if that location
+is a hole.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_seek_shared.3	(revision 97)
@@ -0,0 +1,99 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_seek_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_seek_shared\fP \- Updates the global shared file pointer (collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_seek_shared(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP,
+    	      	   int \fIwhence\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_SEEK_SHARED(\fIFH\fP,\fI OFFSET\fP,\fI WHENCE\fP,\fI IERROR\fP)
+    	      INTEGER \fIFH, WHENCE, IERROR\fP 
+    	      INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Seek_shared(MPI::Offset \fIoffset\fP, int \fIwhence\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+offset 
+File offset (integer).
+.TP 1i
+whence
+Update mode (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_seek_shared updates the shared file pointer according to 
+.I whence,
+which could have the following possible values:
+.TP
+  o  
+MPI_SEEK_SET - The pointer is set to 
+.I offset.
+.TP
+  o  
+MPI_SEEK_CUR - The pointer is set to the current pointer position plus 
+.I offset.
+.TP
+  o  
+MPI_SEEK_END - The pointer is set to the end of the file plus 
+.I offset.
+.sp
+.RE
+MPI_File_seek_shared is collective; all the processes in the communicator
+group associated with the file handle 
+.I fh 
+must call MPI_File_seek_shared with the same 
+.I offset 
+and 
+.I whence.
+All processes in the communicator group are synchronized before the shared file pointer is updated.
+
+.sp
+The 
+.I offset 
+can be negative, which allows seeking backwards. It is erroneous to
+seek to a negative position in the view. The end of the view is
+defined to be the position of the next elementary data item, relative
+to the current view, following the last whole elementary data item
+accessible.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_atomicity.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_atomicity.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_atomicity.3	(revision 97)
@@ -0,0 +1,64 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_set_atomicity 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_set_atomicity\fP \- Sets consistency semantics for data-access operations (collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_set_atomicity(MPI_File \fIfh\fP, int \fIflag\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_SET_ATOMICITY(\fIFH\fP,\fI FLAG\fP,\fI IERROR\fP)
+    	      INTEGER 	  FH, FLAG, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Set_atomicity(bool \fIflag\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+flag
+\fBtrue\fP to enable atomic mode, \fBfalse\fP to enable nonatomic mode (boolean).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The consistency semantics for data-access operations using the set of
+file handles created by one collective MPI_File_open is set by collectively
+calling MPI_File_set_atomicity. All processes in the group must pass identical values for 
+.I fh 
+and
+.I flag.
+If 
+.I flag 
+is 
+.I true,
+atomic mode is set; if 
+.I flag 
+is 
+.I false,
+nonatomic mode is set.
+.sp
+The default value on a call to MPI_File_open in Open MPI is \fItrue\fP for jobs running on more than one node, \fIfalse\fP for jobs running on a single SMP. For more information, see the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_errhandler.3	(revision 97)
@@ -0,0 +1,54 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_set_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_set_errhandler \fP \- Sets the error handler for a file. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_File_set_errhandler(MPI_File \fIfile\fP, MPI_Errhandler 
+	\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FILE_SET_ERRHANDLER(\fIFILE, ERRHANDLER, IERROR\fP)
+	INTEGER	\fIFILE, ERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Set_errhandler(const MPI::Errhandler& \fIerrhandler\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+file
+File (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+errhandler
+New error handler for file (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Attaches a new error handler to a file. The error handler must be either a predefined error handler or an error handler created by a call to MPI_File_create_errhandler. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_info.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_info.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_info.3	(revision 97)
@@ -0,0 +1,90 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_set_info 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_set_info\fP \- Sets new values for hints (collective). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_set_info(MPI_File \fIfh\fP, MPI_Info \fIinfo\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_SET_INFO(\fIFH\fP, \fIINFO\fP, \fIIERROR\fP)
+        	 INTEGER	  FH, INFO, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Set_info(const MPI::Info& \fIinfo\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_set_info is a collective routine that sets new values for the hints of the file associated with \fIfh\fP. These hints are set for each file, using the MPI_File_open, MPI_File_delete, MPI_File_set_view, and MPI_File_set_info routines. The opaque \fIinfo\fP object, which allows you to provide hints for optimization of your code, may be different on each process, but some \fIinfo\fP entries are required to be the same on all processes: In these cases, they must appear with the same value in each process's info object. See the HINTS section for a list of hints that can be set. 
+
+.SH HINTS
+.ft R
+The following hints can be used as values for the \fIinfo\fP argument. 
+.sp
+SETTABLE HINTS:
+.sp
+- shared_file_timeout: Amount of time (in seconds) to wait for access to the 
+shared file pointer before exiting with MPI_ERR_TIMEDOUT.
+.sp
+- rwlock_timeout: Amount of time (in seconds) to wait for obtaining a read or 
+write lock on a contiguous chunk of a UNIX file before exiting with MPI_ERR_TIMEDOUT.
+.sp 
+- noncoll_read_bufsize:  Maximum size of the buffer used by
+MPI I/O to satisfy read requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- noncoll_write_bufsize: Maximum size of the buffer used by
+MPI I/O to satisfy write requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- coll_read_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy read requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+- coll_write_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy write requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+NOTE: A buffer size smaller than the distance (in bytes) in a UNIX file between the first byte and the last byte of the access request causes MPI I/O to iterate and perform multiple UNIX read() or write() calls. If the request includes multiple noncontiguous chunks of data, and the buffer size is greater than the size of those chunks, then the UNIX read() or write() (made at the MPI I/O level) will access data not requested by this process in order to reduce the total number of write() calls made. If this is not desirable behavior, you should reduce this buffer size to equal the size of the contiguous chunks within the aggregate request.
+.sp
+- mpiio_concurrency: (boolean) controls whether nonblocking
+I/O routines can bind an extra thread to an LWP.
+.sp
+- mpiio_coll_contiguous: (boolean) controls whether subsequent collective data accesses will request collectively contiguous regions of the file.
+.sp
+NON-SETTABLE HINTS: 
+.sp
+- filename: Access this hint to get the name of the file. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_size.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_set_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_set_size\fP \- Resizes a file (collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_set_size(MPI_File \fIfh\fP, MPI_Offset \fIsize\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_SET_SIZE(\fIFH\fP,\fI SIZE\fP, \fI IERROR\fP)
+        	 INTEGER \fIFH, IERROR\fP 
+        	 INTEGER(KIND=MPI_OFFSET_KIND) \fISIZE\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Set_size(MPI::Offset \fIsize\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+size
+Size to truncate or expand file (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_set_size resizes the file associated with the file handle
+.I fh,
+truncating UNIX files as necessary. MPI_File_set_size is collective; all
+processes in the group must pass identical values for size.
+.sp
+When using MPI_File_set_size on a UNIX file, if \fIsize\fP is larger than the current file size, the file size becomes \fIsize\fP. If \fIsize\fP is smaller than the current file size, the file is truncated at the position defined by \fIsize\fP (from the beginning of the file and measured in bytes). Regions of the file which have been previously written are unaffected. 
+.sp
+MPI_File_set_size does not affect the individual file pointers or the
+shared file pointer.
+.sp
+Note that the actual amount of storage space cannot be allocated by MPI_File_set_size. Use MPI_File_preallocate to accomplish this. 
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fISIZE\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fISIZE\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_view.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_view.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_set_view.3	(revision 97)
@@ -0,0 +1,160 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_set_view 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_set_view\fP \- Changes process's view of data in file (collective).
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_set_view(MPI_File \fIfh\fP, MPI_Offset \fIdisp\fP,
+    	      MPI_Datatype \fIetype\fP, MPI_Datatype \fIfiletype\fP,
+   	      char \fI*datarep\fP, MPI_Info \fIinfo\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_SET_VIEW(\fIFH\fP,\fI DISP\fP,\fI ETYPE\fP,
+    	      \fI FILETYPE\fP, \fIDATAREP\fP, \fIINFO\fP,\fI IERROR\fP)
+    	 INTEGER \fIFH, ETYPE, FILETYPE, INFO, IERROR\fP 
+	 CHARACTER*(*) \fIDATAREP\fP
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIDISP\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Set_view(MPI::Offset \fIdisp\fP, 
+	const MPI::Datatype& \fIetype\fP,
+	const MPI::Datatype& \fIfiletype\fP, const char* \fIdatarep\fP,
+	const MPI::Info& \fIinfo\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+disp  
+Displacement (integer).
+.TP 1i
+etype 
+Elementary data type (handle). 
+.TP 1i
+filetype
+File type (handle). See Restrictions, below.
+.TP 1i
+datarep
+Data representation (string). 
+.TP 1i
+info
+Info object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The MPI_File_set_view routine changes the process's view of the data
+in the file -- the beginning of the data accessible in the file through
+that view is set to 
+.I disp;
+the type of data is set to 
+.I etype;
+and the distribution of data to processes is set to 
+.I filetype.
+In addition, MPI_File_set_view resets the independent file pointers and
+the shared file pointer to zero. MPI_File_set_view is collective; all
+processes in the group must pass identical values for 
+.I fh
+and 
+.I etype;
+values for 
+.I disp,
+.I filetype,
+and 
+.I info
+may vary. It is erroneous to use the shared file pointer data-access
+routines unless identical values for 
+.I disp
+and 
+.I filetype
+are also given. The data types passed in 
+.I etype
+and 
+.I filetype
+must be committed.
+.sp
+The 
+.I disp
+displacement argument specifies the position (absolute offset in
+bytes from the beginning of the file) where the view begins.
+.sp
+The MPI_File_set_view interface allows the user to pass a data-representation string to MPI I/O via the \fIdatarep\fP argument. To obtain the default value (or "native"), pass NULL. The user can also pass information via the \fIinfo\fP argument. See the HINTS section for a list of hints that can be set. For more information, see the MPI-2 standard. 
+
+.SH HINTS
+.ft R
+The following hints can be used as values for the \fIinfo\fP argument. 
+.sp
+SETTABLE HINTS:
+.sp 
+- MPI_INFO_NULL
+.sp
+- shared_file_timeout: Amount of time (in seconds) to wait for access to the 
+shared file pointer before exiting with MPI_ERR_TIMEDOUT.
+.sp
+- rwlock_timeout: Amount of time (in seconds) to wait for obtaining a read or 
+write lock on a contiguous chunk of a UNIX file before exiting with MPI_ERR_TIMEDOUT.
+.sp 
+- noncoll_read_bufsize:  Maximum size of the buffer used by
+MPI I/O to satisfy read requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- noncoll_write_bufsize: Maximum size of the buffer used by
+MPI I/O to satisfy write requests in
+the noncollective data-access routines. (See NOTE, below.)
+.sp
+- coll_read_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy read requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+- coll_write_bufsize:  Maximum size of the buffer used by MPI
+I/O to satisfy write requests in the
+collective data-access routines. (See NOTE, below.)
+.sp
+NOTE: A buffer size smaller than the distance (in bytes) in a UNIX file between the first byte and the last byte of the access request causes MPI I/O to iterate and perform multiple UNIX read() or write() calls. If the request includes multiple noncontiguous chunks of data, and the buffer size is greater than the size of those chunks, then the UNIX read() or write() (made at the MPI I/O level) will access data not requested by this process in order to reduce the total number of write() calls made. If this is not desirable behavior, you should reduce this buffer size to equal the size of the contiguous chunks within the aggregate request.
+.sp
+- mpiio_concurrency: (boolean) controls whether nonblocking
+I/O routines can bind an extra thread to an LWP.
+.sp
+- mpiio_coll_contiguous: (boolean) controls whether subsequent collective data accesses will request collectively contiguous regions of the file.
+.sp
+NON-SETTABLE HINTS: 
+.sp
+- filename: Access this hint to get the name of the file. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIDISP\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIDISP\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_sync.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_sync.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_sync.3	(revision 97)
@@ -0,0 +1,56 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_sync 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_sync\fP \- Makes semantics consistent for data-access operations (collective). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_sync(MPI_File \fIfh\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_SYNC(\fIFH\fP, \fIIERROR\fP)
+        	 INTEGER	  FH, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Sync()
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Calling MPI_File_sync with
+.I fh
+causes all previous writes to 
+.I fh
+by the calling process to be written to permanent storage. If other processes have made updates to permanent storage, then all such updates become visible to subsequent reads of 
+.I fh
+by the calling process.
+.sp
+MPI_File_sync is a collective operation. The user is responsible for ensuring that all nonblocking requests on 
+.I fh
+have been completed before calling MPI_File_sync. Otherwise, the call to MPI_File_sync is erroneous.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write.3	(revision 97)
@@ -0,0 +1,87 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write\fP \- Writes a file starting at the location specified by the individual file pointer (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write(MPI_File \fIfh\fP, void \fI*buf\fP, 
+	int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+	MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE(\fIFH\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type> \fIBUF\fP(*)
+    	 INTEGER \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), 
+		IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write attempts to write into the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The data is written into those parts of the
+file specified by the current view. MPI_File_write stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined.
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all.3	(revision 97)
@@ -0,0 +1,83 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_all 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_all\fP \- Writes a file starting at the locations specified by individual file pointers (blocking, collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_all(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ALL(\fIFH\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type>		BUF(*)
+    	 INTEGER	FH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), 
+			IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_all(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_all(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_all is a collective routine that attempts to write into the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The data is written into those parts of the
+file specified by the current view. MPI_File_write_all stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined.
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_begin.3	(revision 97)
@@ -0,0 +1,78 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_all_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_all_begin\fP \- Writes a file starting at the locations specified by individual file pointers; beginning part of a split collective routine (nonblocking). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_all_begin(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ALL_BEGIN(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_all_begin(const void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_all_begin is the beginning part of a split collective, nonblocking routine that attempts to write into the file associated with 
+.I fh
+(at the current individual file pointer position maintained by the system) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The data is written into those parts of the
+file specified by the current view. 
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_all_end.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_all_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_all_end\fP \- Writes a file starting at the locations specified by individual file pointers; ending part of a split collective routine (blocking). 
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_all_end(MPI_File \fIfh\fP, void \fI*buf\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, STATUS, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_all_end(const void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_all_end(const void* \fIbuf\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_all_end is the ending part of a split collective routine that stores the
+number of elements actually written into the file associated with 
+.I fh
+from the user's buffer 
+.I buf
+in
+.I status. 
+MPI_File_write_all_end blocks until the operation initiated by MPI_File_write_all_begin completes. The data is written into those parts of the
+file specified by the current view. All other fields of 
+.I status 
+are undefined.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at.3	(revision 97)
@@ -0,0 +1,115 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_at 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_at\fP \- Writes a file at an explicitly specified offset (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_at(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_AT(\fIFH\fP, \fI OFFSET\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type>	\fIBUF\fP(*)
+    	 INTEGER \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_at(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP, 
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_at(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP, 
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+offset
+File offset (integer).
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_at attempts to write into the file associated with 
+.I fh
+(at the 
+.I offset 
+position) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The offset is in 
+.I etype
+units relative to the current view. That is, holes are not counted
+when locating an offset. The data is written into those parts of the
+file specified by the current view. MPI_File_write_at stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined.
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_File_iwrite_at
+.br
+MPI_File_write_at_all
+.br
+MPI_File_write_at_all_begin
+.br
+MPI_File_write_at_all_end
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all.3	(revision 97)
@@ -0,0 +1,103 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_at_all 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_at_all\fP \- Writes a file at explicitly specified offsets (blocking, collective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_at_all(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_AT_ALL(\fIFH\fP, \fI OFFSET\fP, \fI BUF\fP, \fICOUNT\fP, 
+    	      \fI DATATYPE\fP, \fISTATUS\fP, \fI IERROR\fP)
+	 <type> \fIBUF\fP(*)
+    	 INTEGER \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP 
+    	 INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_at_all(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, 
+	MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_at_all(MPI::Offset \fIoffset\fP, const void* \fIbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh
+File handle (handle).
+.TP 1i
+offset
+File offset (integer).
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_at_all is a collective routine that attempts to write into the file associated with 
+.I fh
+(at the 
+.I offset 
+position) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The offset is in etype units relative to the current view. That is, holes are not counted
+when locating an offset. The data is written into those parts of the
+file specified by the current view. MPI_File_write_at_all stores the
+number of 
+.I datatype 
+elements actually written in 
+.I status. 
+All other fields of 
+.I status 
+are undefined.
+.sp
+It is erroneous to call this function if MPI_MODE_SEQUENTIAL mode was specified when the file was opened. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_begin.3	(revision 97)
@@ -0,0 +1,97 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_at_all_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_at_all_begin\fP \- Writes a file at explicitly specified offsets; beginning part of a split collective routine (nonblocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_at_all_begin(MPI_File \fIfh\fP, MPI_Offset \fIoffset\fP, 
+    	      void \fI*buf\fP, int \fIcount\fP, MPI_Datatype \fIdatatype\fP)
+
+Fortran Syntax (see FORTRAN 77 NOTES)
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_AT_ALL_BEGIN(\fIFH\fP, \fIOFFSET\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<TYPE> \fIBUF\fP(*)
+        	INTEGER	\fIFH, COUNT, DATATYPE, IERROR\fP 
+		INTEGER(KIND=MPI_OFFSET_KIND) \fIOFFSET\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_at_all_begin(MPI::Offset \fIoffset\fP, 
+	const void* \fIbuf\fP, int \fIcount\fP, 
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+offset
+File offset (handle).
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_at_all_begin is the beginning part of a split collective, that is, a nonblocking routine that attempts to write into the file associated with 
+.I fh
+(at the 
+.I offset 
+position) a total number of 
+.I count 
+data items having
+.I datatype 
+type from the user's buffer 
+.I buf.
+The offset is in etype units relative to the current view. That is, holes are not counted
+when locating an offset. The data is written into those parts of the
+file specified by the current view. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIOFFSET\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_OFFSET_KIND \fIOFFSET\fP
+.fi
+.sp
+where MPI_OFFSET_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_at_all_end.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_at_all_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_at_all_end\fP \- Writes a file at explicitly specified offsets; ending part of a split collective routine (blocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_at_all_end(MPI_File \fIfh\fP, void *buf, 
+    	      MPI_Status *status)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_AT_ALL_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_at_all_end(const void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_at_all_end(const void* \fIbuf\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh
+File handle (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_at_all_end is the ending part of a split collective routine that stores the
+number of elements actually written into the file associated with 
+.I fh
+in
+.I status. 
+The data is written into those parts of the
+file specified by the current view. All other fields of 
+.I status 
+are undefined.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered.3	(revision 97)
@@ -0,0 +1,91 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_ordered 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_ordered\fP \- Writes a file at a location specified by a shared file pointer (blocking, collective).
+
+.SH SYNTAX
+.ft R
+C Syntax
+.nf
+    #include <mpi.h>
+    int MPI_File_write_ordered(MPI_File \fIfh\fP, void \fI*buf\fP,
+    	      	   int \fIcount\fP, MPI_Datatype \fIdatatype\fP, 
+    	      	   MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ORDERED(\fIFH\fP,\fI BUF\fP,\fI COUNT\fP,\fI DATATYPE\fP,
+    	      	   \fISTATUS\fP,\fI IERROR\fP)
+    	      <type>	  \fIBUF\fP(*)
+    	      INTEGER 	  \fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_ordered(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_ordered(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+.TP 1i
+buf
+Initial address of buffer (choice).
+.TP 1i
+count
+Number of elements in buffer (integer).
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (Status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_ordered is a collective routine. This routine must
+be called by all processes in the communicator group associated with
+the file handle 
+.I fh.
+Each process may pass different argument values
+for the 
+.I datatype 
+and 
+.I count 
+arguments. Each process attempts to
+write, into the file associated with 
+.I fh,
+a total number of 
+.I count 
+data items having datatype type contained in the user's buffer 
+.I buf.
+For
+each process, the location in the file at which data is written is the
+position at which the shared file pointer would be after all processes
+whose ranks within the group are less than that of this process had
+written their data. MPI_File_write_ordered returns the number of
+.I datatype 
+elements written in 
+.I status.
+The shared file pointer is
+updated by the amounts of data requested by all processes of the
+group.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_begin.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_begin.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_begin.3	(revision 97)
@@ -0,0 +1,87 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_ordered_begin 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_ordered_begin\fP \- Writes a file at a location specified by a shared file pointer; beginning part of a split collective routine (nonblocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_ordered_begin(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      int \fIcount\fP, MPI_Datatype \fIdatatype\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ORDERED_BEGIN(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, COUNT, DATATYPE, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_ordered_begin(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_ordered_begin is the beginning part of a split collective, nonblocking routine that must
+be called by all processes in the communicator group associated with
+the file handle 
+.I fh.
+Each process may pass different argument values
+for the 
+.I datatype 
+and 
+.I count 
+arguments. After all processes of the
+group have issued their respective calls, each process attempts to
+write, into the file associated with 
+.I fh,
+a total number of 
+.I count 
+data items having datatype type contained in the user's buffer 
+.I buf.
+For
+each process, the location in the file at which data is written is the
+position at which the shared file pointer would be after all processes
+whose ranks within the group are less than that of this process had
+written their data. 
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_end.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_end.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_ordered_end.3	(revision 97)
@@ -0,0 +1,69 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_ordered_end 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_ordered_end\fP \- Writes a file at a location specified by a shared file pointer; ending part of a split collective routine (blocking).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_ordered_end(MPI_File \fIfh\fP, void \fI*buf\fP, 
+    	      MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_ORDERED_END(\fIFH\fP, \fIBUF\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		BUF(*)
+        	INTEGER		FH, STATUS(MPI_STATUS_SIZE), IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_ordered_end(const void* \fIbuf\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_ordered_end(const void* \fIbuf\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_ordered_end is the ending part of a split collective routine that must
+be called by all processes in the communicator group associated with
+the file handle 
+.I fh.
+MPI_File_write_ordered_end returns the number of elements written into the file associated with 
+.I fh
+in
+.I status.
+
+.SH NOTES
+.ft R
+All the nonblocking collective routines for data access are "split" into two routines, each with _begin or _end as a suffix. These split collective routines are subject to the semantic rules described in Section 9.4.5 of the MPI-2 standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_shared.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_shared.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_File_write_shared.3	(revision 97)
@@ -0,0 +1,69 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_File_write_shared 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_File_write_shared\fP \- Writes a file using the shared file pointer (blocking, noncollective).
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_File_write_shared(MPI_File \fIfh\fP, void \fI*buf\fP, int \fIcount\fP, 
+    	      MPI_Datatype \fIdatatype\fP, MPI_Status \fI*status\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_FILE_WRITE_SHARED(\fIFH\fP, \fIBUF\fP, \fICOUNT\fP, \fIDATATYPE\fP, \fISTATUS\fP,\fI IERROR\fP)
+		<type>		\fIBUF(*)\fP
+        	INTEGER		\fIFH, COUNT, DATATYPE, STATUS(MPI_STATUS_SIZE), 
+				     IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::File::Write_shared(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP, MPI::Status& \fIstatus\fP)
+
+void MPI::File::Write_shared(const void* \fIbuf\fP, int \fIcount\fP,
+	const MPI::Datatype& \fIdatatype\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+fh    
+File handle (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of buffer (choice).
+.ft R
+.TP 1i
+count
+Number of elements in buffer (integer).
+.ft R
+.TP 1i
+datatype
+Data type of each buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_File_write_shared is a blocking routine that uses the shared file pointer to write files. The order of serialization is not deterministic for this noncollective routine.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalize.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalize.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalize.3	(revision 97)
@@ -0,0 +1,51 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Finalize 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Finalize \fP \- Terminates MPI execution environment.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Finalize()
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FINALIZE(\fIIERROR\fP)
+	INTEGER	\fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Finalize()
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine cleans up all MPI states. Once this routine is called, no MPI routine (not even MPI_Init) may be called, except for MPI_Get_version, MPI_Initialized, and MPI_Finalized. Unless there has been a call to MPI_Abort, you must ensure that all pending communications involving a process are complete before the process calls MPI_Finalize. If the call returns, each process may either continue local computations or exit without participating in further communication with other processes. At the moment when the last process calls MPI_Finalize, all pending sends must be matched by a receive, and all pending receives must be matched by a send. 
+
+MPI_Finalize is collective over all connected processes. If no processes were spawned, accepted, or connected, then this means it is collective over MPI_COMM_WORLD. Otherwise, it is collective over the union of all processes that have been and continue to be connected. 
+
+.SH NOTES
+.ft R
+All processes must call this routine before exiting. All processes will still exist but may not make any further MPI calls. MPI_Finalize guarantees that all local actions required by communications the user has completed will, in fact, occur before it returns. However, MPI_Finalize guarantees nothing about pending communications that have \fInot\fP been completed; completion is ensured only by MPI_Wait, MPI_Test, or MPI_Request_free combined with some other verification of completion.
+.sp
+For example, a successful return from a blocking communication operation or from MPI_Wait or MPI_Test means that the communication is completed by the user and the buffer can be reused, but does not guarantee that the local process has no more work to do. Similarly, a successful return from MPI_Request_free with a request handle generated by an MPI_Isend nullifies the handle but does not guarantee that the operation has completed. The MPI_Isend is complete only when a matching receive has completed. 
+.sp
+If you would like to cause actions to happen when a process finishes, attach an attribute to MPI_COMM_SELF with a callback function. Then, when MPI_Finalize is called, it will first execute the equivalent of an MPI_Comm_free on MPI_COMM_SELF. This will cause the delete callback function to be executed on all keys associated with MPI_COMM_SELF in an arbitrary order. If no key has been attached to MPI_COMM_SELF, then no callback is invoked. This freeing of MPI_COMM_SELF happens before any other parts of MPI are affected. Calling MPI_Finalized will thus return "false" in any of these callback functions. Once you have done this with MPI_COMM_SELF, the results of MPI_Finalize are not specified. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalized.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalized.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Finalized.3	(revision 97)
@@ -0,0 +1,45 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Finalized 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Finalized \fP \- Checks whether MPI_Finalize has completed. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Finalized(int \fI*flag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FINALIZED(\fIFLAG\fP, \fIIERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Is_finalized()
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+flag
+True if MPI was finalized (logical).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine returns "true" if MPI_Finalize has completed. You can call MPI_Finalized before MPI_Init and after MPI_Finalize. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Free_mem.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Free_mem.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Free_mem.3	(revision 97)
@@ -0,0 +1,51 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Free_mem 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Free_mem \fP \- Frees memory that has been allocated using MPI_Alloc_mem.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Free_mem(void *\fIbase\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_FREE_MEM(\fIBASE, IERROR\fP) 
+	<type> \fIBASE\fP(*) 
+	INTEGER \fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Free_mem(void *\fIbase\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+base
+Initial address of memory segment allocated by MPI_Alloc_mem (choice). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Free_mem frees memory that has been allocated by MPI_Alloc_mem. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Alloc_mem
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gather.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gather.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gather.3	(revision 97)
@@ -0,0 +1,169 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Gather 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Gather\fP \- Gathers values from a group of processes.
+
+.SH SYNOPSIS
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Gather(void \fI*sendbuf\fP, int\fI sendcount\fP, MPI_Datatype\fI sendtype\fP,
+	void\fI *recvbuf\fP, int\fI recvcount\fP, MPI_Datatype\fI recvtype\fP, int \fIroot\fP,
+	MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GATHER(\fISENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
+		RECVTYPE, ROOT, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT\fP
+	INTEGER	\fICOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Gather(const void* \fIsendbuf\fP, int \fIsendcount\fP,
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP, 
+	int \fIrecvcount\fP, const MPI::Datatype& \fIrecvtype\fP, int \fIroot\fP,
+	const = 0
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Starting address of send buffer (choice).
+.TP 1i
+sendcount
+Number of elements in send buffer (integer).
+.TP 1i
+sendtype
+Datatype of send buffer elements (handle).
+.TP 1i
+recvcount
+Number of elements for any single receive (integer, significant only at
+root).
+.TP 1i
+recvtype
+Datatype of recvbuffer elements (handle, significant only at root).
+.TP 1i
+root
+Rank of receiving process (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.TP 1i
+recvbuf
+Address of receive buffer (choice, significant only at root).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Each process (root process included) sends the contents of its send buffer to the root process. The root process receives the messages and stores them in rank order. The outcome is as if each of the n processes in the group (including the root process) had executed a call to      
+.sp
+.nf
+    MPI_Send(sendbuf, sendcount, sendtype, root, \&...)
+.fi
+.sp
+and the root had executed n calls to 
+.sp
+.nf
+    MPI_Recv(recfbuf + i * recvcount * extent(recvtype), \ 
+             recvcount, recvtype, i, \&...)
+.fi
+.sp
+where extent(recvtype) is the type extent obtained from a call to MPI_Type_extent().            
+.sp
+An alternative description is that the n messages sent by the processes in the group are concatenated in rank order, and the resulting message is received by the root as if by a call to MPI_RECV(recvbuf, recvcount * n, recvtype, . . . ). 
+.sp
+The receive buffer is ignored for all nonroot processes. 
+.sp
+General, derived datatypes are allowed for both sendtype and recvtype. The
+type signature of sendcount, sendtype on process i must be equal to the type signature of recvcount, recvtype at the root. This implies that the amount of data sent must be equal to the amount of data received, pairwise between each process and the root. Distinct type maps between sender and receiver are still allowed.
+.sp
+All arguments to the function are significant on process root, while on other processes, only arguments sendbuf, sendcount, sendtype, root, comm are significant. The arguments root and comm must have identical values on all processes. 
+.sp
+The specification of counts and types should not cause any location on the root to be written more than once. Such a call is erroneous. 
+.sp
+Note that the recvcount argument at the root indicates the number of items it receives from each process, not the total number of items it receives.
+.sp
+\fBExample 1:\fP  Gather 100 ints from every process in group to root.
+.sp
+.nf
+  MPI_Comm comm; 
+      int gsize,sendarray[100]; 
+      int root, *rbuf; 
+      \&... 
+      MPI_Comm_size( comm, &gsize); 
+      rbuf = (int *)malloc(gsize*100*sizeof(int)); 
+      MPI_Gather( sendarray, 100, MPI_INT, rbuf, 100, MPI_INT, root, comm); 
+
+.fi
+.sp
+.br
+\fBExample 2:\fP Previous example modified -- only the root allocates memory for the receive buffer.
+.sp
+.nf
+  MPI_Comm comm; 
+      int gsize,sendarray[100]; 
+      int root, myrank, *rbuf; 
+      \&... 
+      MPI_Comm_rank( comm, myrank); 
+      if ( myrank == root) { 
+         MPI_Comm_size( comm, &gsize); 
+         rbuf = (int *)malloc(gsize*100*sizeof(int)); 
+         } 
+      MPI_Gather( sendarray, 100, MPI_INT, rbuf, 100, MPI_INT, root, comm); 
+.fi
+.sp
+\fBExample 3:\fP Do the same as the previous example, but use a derived
+datatype. Note that the type cannot be the entire set of  gsize * 100 ints since type matching is defined pairwise between the root and each process in the gather.   
+
+.nf
+  MPI_Comm comm; 
+      int gsize,sendarray[100]; 
+      int root, *rbuf; 
+      MPI_Datatype rtype; 
+      \&... 
+      MPI_Comm_size( comm, &gsize); 
+      MPI_Type_contiguous( 100, MPI_INT, &rtype ); 
+      MPI_Type_commit( &rtype ); 
+      rbuf = (int *)malloc(gsize*100*sizeof(int)); 
+      MPI_Gather( sendarray, 100, MPI_INT, rbuf, 1, rtype, root, comm); 
+.fi
+
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform a gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the root process \fIsendbuf\fR.  In this case, \fIsendcount\fR and \fIsendtype\fR are ignored, and the contribution of the root process to the gathered vector is assumed to already be in the correct place in the receive buffer.  
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group gathers data from all the processes in the second group.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.   The send buffer argument of the processes in the first group must be consistent with the receive buffer argument of the root process in the second group.   
+.sp  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Gatherv
+MPI_Scatter
+MPI_Scatterv
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gatherv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gatherv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Gatherv.3	(revision 97)
@@ -0,0 +1,330 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Gatherv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Gatherv\fP \- Gathers varying amounts of data from all processes to the root process
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Gatherv(void *\fIsendbuf\fP, int\fI sendcount\fP, MPI_Datatype\fI sendtype\fP,
+	void\fI *recvbuf\fP, int\fI *recvcounts\fP, int\fI *displs\fP, MPI_Datatype\fI recvtype\fP,
+	int \fIroot\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GATHERV(\fISENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS,
+		DISPLS, RECVTYPE, ROOT, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*)\fP
+	INTEGER	\fIRECVTYPE, ROOT, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Gatherv(const void* \fIsendbuf\fP, int \fIsendcount\fP, 
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP,
+	const int \fIrecvcounts\fP[], const int \fIdispls\fP[],
+	const MPI::Datatype& \fIrecvtype\fP, int \fIroot\fP) const = 0
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Starting address of send buffer (choice).
+.TP 1i
+sendcount
+Number of elements in send buffer (integer).
+.TP 1i
+sendtype
+Datatype of send buffer elements (handle).
+.TP 1i
+recvcounts
+Integer array (of length group size) containing the number of elements that
+are received from each process (significant only at root).
+.TP 1i
+displs
+Integer array (of length group size). Entry i specifies the displacement
+relative to recvbuf at which to place the incoming data from process i (significant only at root).
+.TP 1i
+recvtype
+Datatype of recv buffer elements (significant only at root) (handle).
+.TP 1i
+root
+Rank of receiving process (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Address of receive buffer (choice, significant only at root).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Gatherv extends the functionality of MPI_Gather by allowing a varying count of data from each process, since recvcounts is now an array. It also allows more flexibility as to where the data is placed on the root, by providing the new argument, displs.  
+.sp
+The outcome is as if each process, including the root process, sends a message to the root, 
+.sp
+.nf
+    MPI_Send(sendbuf, sendcount, sendtype, root, \&...)
+.fi
+.sp
+and the root executes n receives,  
+.sp
+.nf
+    MPI_Recv(recvbuf + disp[i] * extent(recvtype), \\
+             recvcounts[i], recvtype, i, \&...)
+.fi
+.sp
+Messages are placed in the receive buffer of the root process in rank order, that is, the data sent from process j is placed in the jth portion of the receive buffer recvbuf on process root. The jth portion of recvbuf begins at offset displs[j] elements (in terms of recvtype) into recvbuf.
+.sp
+The receive buffer is ignored for all nonroot processes.  
+.sp
+The type signature implied by sendcount, sendtype on process i must be equal to the type signature implied by recvcounts[i], recvtype at the root. This implies that the amount of data sent must be equal to the amount of data received, pairwise between each process and the root. Distinct type maps between sender and receiver are still allowed, as illustrated in Example 2, below.
+.sp
+All arguments to the function are significant on process root, while on other processes, only arguments sendbuf, sendcount, sendtype, root, comm are significant. The arguments root and comm must have identical values on all processes. 
+.sp
+The specification of counts, types, and displacements should not cause any location on the root to be written more than once. Such a call is erroneous. 
+.sp
+\fBExample 1:\fP  Now have each process send 100 ints to root, but place
+each set (of 100) stride ints apart at receiving end. Use MPI_Gatherv and
+the displs argument to achieve this effect. Assume stride >= 100. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100]; 
+      int root, *rbuf, stride; 
+      int *displs,i,*rcounts; 
+   
+  \&... 
+
+      MPI_Comm_size(comm, &gsize); 
+      rbuf = (int *)malloc(gsize*stride*sizeof(int)); 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      for (i=0; i<gsize; ++i) { 
+          displs[i] = i*stride; 
+          rcounts[i] = 100; 
+      } 
+      MPI_Gatherv(sendarray, 100, MPI_INT, rbuf, rcounts, 
+                  displs, MPI_INT, root, comm);
+.fi
+.sp
+Note that the program is erroneous if stride < 100.
+.sp
+\fBExample 2:\fP Same as Example 1 on the receiving side, but send the 100
+ints from the 0th column of a 100 * 150 int array, in C. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100][150]; 
+      int root, *rbuf, stride; 
+      MPI_Datatype stype; 
+      int *displs,i,*rcounts; 
+  
+  \&... 
+   
+      MPI_Comm_size(comm, &gsize); 
+      rbuf = (int *)malloc(gsize*stride*sizeof(int)); 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      for (i=0; i<gsize; ++i) { 
+          displs[i] = i*stride; 
+          rcounts[i] = 100; 
+      } 
+      /* Create datatype for 1 column of array 
+       */ 
+      MPI_Type_vector(100, 1, 150, MPI_INT, &stype); 
+      MPI_Type_commit( &stype ); 
+      MPI_Gatherv(sendarray, 1, stype, rbuf, rcounts, 
+                  displs, MPI_INT, root, comm); 
+.fi
+.sp
+\fBExample 3:\fP Process i sends (100-i) ints from the ith column of a 100
+x 150 int array, in C. It is received into a buffer with stride, as in the
+previous two examples. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100][150],*sptr; 
+      int root, *rbuf, stride, myrank; 
+      MPI_Datatype stype; 
+      int *displs,i,*rcounts; 
+
+  \&... 
+   
+      MPI_Comm_size(comm, &gsize); 
+      MPI_Comm_rank( comm, &myrank ); 
+      rbuf = (int *)malloc(gsize*stride*sizeof(int)); 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      for (i=0; i<gsize; ++i) { 
+          displs[i] = i*stride; 
+          rcounts[i] = 100-i;  /* note change from previous example */ 
+      } 
+      /* Create datatype for the column we are sending 
+       */ 
+      MPI_Type_vector(100-myrank, 1, 150, MPI_INT, &stype); 
+      MPI_Type_commit( &stype ); 
+      /* sptr is the address of start of "myrank" column 
+       */ 
+      sptr = &sendarray[0][myrank]; 
+      MPI_Gatherv(sptr, 1, stype, rbuf, rcounts, displs, MPI_INT, 
+         root, comm); 
+.fi
+.sp
+Note that a different amount of data is received from each process.
+.sp
+\fBExample 4:\fP Same as Example 3, but done in a different way at the sending end. We create a datatype that causes the correct striding at the sending end so that we read a column of a C array. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100][150],*sptr; 
+      int root, *rbuf, stride, myrank, disp[2], blocklen[2]; 
+      MPI_Datatype stype,type[2]; 
+      int *displs,i,*rcounts; 
+   
+  \&... 
+   
+      MPI_Comm_size(comm, &gsize); 
+      MPI_Comm_rank( comm, &myrank ); 
+      rbuf = (int *)alloc(gsize*stride*sizeof(int)); 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      for (i=0; i<gsize; ++i) { 
+          displs[i] = i*stride; 
+          rcounts[i] = 100-i; 
+      } 
+      /* Create datatype for one int, with extent of entire row 
+       */ 
+      disp[0] = 0;       disp[1] = 150*sizeof(int); 
+      type[0] = MPI_INT; type[1] = MPI_UB; 
+      blocklen[0] = 1;   blocklen[1] = 1; 
+      MPI_Type_struct( 2, blocklen, disp, type, &stype ); 
+      MPI_Type_commit( &stype ); 
+      sptr = &sendarray[0][myrank]; 
+      MPI_Gatherv(sptr, 100-myrank, stype, rbuf, rcounts, 
+                  displs, MPI_INT, root, comm);
+.fi
+.sp
+\fBExample 5:\fP Same as Example 3 at sending side, but at receiving side
+we make the  stride between received blocks vary from block to block. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100][150],*sptr; 
+      int root, *rbuf, *stride, myrank, bufsize; 
+      MPI_Datatype stype; 
+      int *displs,i,*rcounts,offset; 
+
+  \&... 
+ 
+      MPI_Comm_size( comm, &gsize); 
+      MPI_Comm_rank( comm, &myrank ); 
+ 
+  stride = (int *)malloc(gsize*sizeof(int)); 
+     \&... 
+      /* stride[i] for i = 0 to gsize-1 is set somehow 
+       */
+  /* set up displs and rcounts vectors first 
+       */ 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      offset = 0; 
+      for (i=0; i<gsize; ++i) { 
+          displs[i] = offset; 
+          offset += stride[i]; 
+          rcounts[i] = 100-i; 
+      } 
+      /* the required buffer size for rbuf is now easily obtained 
+       */ 
+      bufsize = displs[gsize-1]+rcounts[gsize-1]; 
+      rbuf = (int *)malloc(bufsize*sizeof(int)); 
+      /* Create datatype for the column we are sending 
+       */ 
+      MPI_Type_vector(100-myrank, 1, 150, MPI_INT, &stype); 
+      MPI_Type_commit( &stype ); 
+      sptr = &sendarray[0][myrank]; 
+      MPI_Gatherv(sptr, 1, stype, rbuf, rcounts, 
+                  displs, MPI_INT, root, comm);
+.fi
+.sp
+\fBExample 6:\fP Process i sends num ints from the ith column of a 100 x
+150 int array, in C.  The complicating factor is that the various values of num are not known to root, so a separate gather must first be run to find these out. The data is placed contiguously at the receiving end. 
+.sp
+.nf
+      MPI_Comm comm; 
+      int gsize,sendarray[100][150],*sptr; 
+      int root, *rbuf, stride, myrank, disp[2], blocklen[2]; 
+      MPI_Datatype stype,types[2]; 
+      int *displs,i,*rcounts,num; 
+   
+  \&... 
+   
+      MPI_Comm_size( comm, &gsize); 
+      MPI_Comm_rank( comm, &myrank ); 
+  
+  /* First, gather nums to root 
+       */ 
+      rcounts = (int *)malloc(gsize*sizeof(int)); 
+      MPI_Gather( &num, 1, MPI_INT, rcounts, 1, MPI_INT, root, comm); 
+      /* root now has correct rcounts, using these we set 
+       * displs[] so that data is placed contiguously (or 
+       * concatenated) at receive end 
+       */ 
+      displs = (int *)malloc(gsize*sizeof(int)); 
+      displs[0] = 0; 
+      for (i=1; i<gsize; ++i) { 
+          displs[i] = displs[i-1]+rcounts[i-1]; 
+      } 
+      /* And, create receive buffer 
+       */ 
+      rbuf = (int *)malloc(gsize*(displs[gsize-1]+rcounts[gsize-1]) 
+              *sizeof(int)); 
+      /* Create datatype for one int, with extent of entire row 
+       */
+      disp[0] = 0;       disp[1] = 150*sizeof(int); 
+      type[0] = MPI_INT; type[1] = MPI_UB; 
+      blocklen[0] = 1;   blocklen[1] = 1; 
+      MPI_Type_struct( 2, blocklen, disp, type, &stype ); 
+      MPI_Type_commit( &stype ); 
+      sptr = &sendarray[0][myrank]; 
+      MPI_Gatherv(sptr, num, stype, rbuf, rcounts, 
+                  displs, MPI_INT, root, comm); 
+.fi
+.SH USE OF IN-PLACE OPTION
+The in-place option operates in the same way as it does for MPI_Gather.  When the communicator is an intracommunicator, you can perform a gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the root process \fIsendbuf\fR.  In this case, \fIsendcount\fR and \fIsendtype\fR are ignored, and the contribution of the root process to the gathered vector is assumed to already be in the correct place in the receive buffer.  
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group gathers data from all the processes in the second group.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.   The send buffer argument of the processes in the first group must be consistent with the receive buffer argument of the root process in the second group.   
+.sp  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Gather
+MPI_Scatter
+MPI_Scatterv
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get.3	(revision 97)
@@ -0,0 +1,95 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get\fP \- Copies data from the target memory to the origin. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Get(void *\fIorigin_addr\fP, int \fIorigin_count\fP, MPI_Datatype 
+	\fIorigin_datatype\fP, int \fItarget_rank\fP, MPI_Aint \fItarget_disp\fP, 
+	int \fItarget_count\fP, MPI_Datatype \fItarget_datatype\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_GET(\fIORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, 
+	TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, WIN, IERROR\fP)
+	<type> \fIORIGIN_ADDR\fP(*)
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fITARGET_DISP\fP
+	INTEGER \fIORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, 
+	TARGET_COUNT, TARGET_DATATYPE, WIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Get(const void *\fIorigin_addr\fP, int \fIorigin_count\fP, 
+	const MPI::Datatype& \fIorigin_datatype\fP, int \fItarget_rank\fP, 
+	MPI::Aint \fItarget_disp\fP, int \fItarget_count\fP, 
+	const MPI::Datatype& \fItarget_datatype\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+origin_addr
+Initial address of origin buffer (choice).
+.TP 1i
+origin_count
+Number of entries in origin buffer (nonnegative integer). 
+.TP 1i
+origin_datatype
+Data type of each entry in origin buffer (handle).
+.TP 1i
+target_rank
+Rank of target (nonnegative integer).
+.TP 1i
+target_disp
+Displacement from window start to the beginning of the target buffer (nonnegative integer). 
+.TP 1i
+target_count
+Number of entries in target buffer (nonnegative integer).
+.TP 1i
+target datatype
+datatype of each entry in target buffer (handle) 
+.TP 1i
+win
+window object used for communication (handle)
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Get copies data from the target memory to the origin, similar to MPI_Put, except that the direction of data transfer is reversed. The \fIorigin_datatype\fP may not specify overlapping entries in the origin buffer. The target buffer must be contained within the target window, and the copied data must fit, without truncation, in the origin buffer. Only processes within the same node can access the target window.
+.sp
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fITARGET_DISP\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fITARGET_DISP\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Put
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_address.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_address.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_address.3	(revision 97)
@@ -0,0 +1,72 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Get_address 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get_address\fP \- Gets the address of a location in memory. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Get_address(void *\fIlocation\fP, MPI_Aint *\fIaddress\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GET_ADDRESS(\fILOCATION, ADDRESS, IERROR\fP)
+	<type> \fILOCATION\fP(*)
+	INTEGER	\fIADDRESS, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Aint MPI::Get_address(void* \fIlocation\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+location
+Location in caller memory (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+address
+Address of location (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Get_address returns the byte address of a location in memory.
+.sp
+Example: Using MPI_Get_address for an array. 
+.sp
+.nf
+EAL A(100,100) 
+.br
+   INTEGER I1, I2, DIFF 
+.br
+   CALL MPI_GET_ADDRESS(A(1,1), I1, IERROR) 
+.br
+   CALL MPI_GET_ADDRESS(A(10,10), I2, IERROR) 
+.br
+   DIFF = I2 - I1 
+.br
+! The value of DIFF is 909*sizeofreal; the values of I1 and I2 are 
+.br
+! implementation dependent. 
+.fi
+
+.SH NOTES
+.ft R
+Current Fortran MPI codes will run unmodified and will port to any system. However, they may fail if addresses larger than 2^32 - 1 are used in the program. New codes should be written so that they use the new functions. This provides compatibility with C/C++ and avoids errors on 64-bit architectures. However, such newly written codes may need to be (slightly) rewritten to port to old Fortran 77 environments that do not support KIND declarations. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_count.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_count.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_count.3	(revision 97)
@@ -0,0 +1,79 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Get_count 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get_count \fP \- Gets the number of top-level elements received.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Get_count(MPI_Status *\fIstatus\fP, MPI_Datatype\fI datatype\fP,
+	int\fI *count\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GET_COUNT(\fISTATUS, DATATYPE, COUNT, IERROR\fP)
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Status::Get_count(const Datatype& \fIdatatype\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Return status of receive operation (status).
+.TP 1i
+datatype
+Datatype of each receive buffer element (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of received elements (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Returns the number of entries received. (We count entries, each of type
+datatype, not bytes.) The datatype argument should match the argument
+provided by the receive call that set the status variable. (As explained in Section 3.12.5 in the MPI-1 Standard, "Use of General Datatypes in Communication," MPI_Get_count may, in certain situations, return the value MPI_UNDEFINED.)  
+.sp
+The datatype argument is passed to MPI_Get_count to improve performance. A message might be received without counting the number of elements it contains, and the count value is often not needed. Also, this allows the same function to be used after a call to MPI_Probe.
+
+.SH NOTES
+If the size of the datatype is zero, this routine will return a count of
+zero.  If the amount of data in 
+.I status
+is not an exact multiple of the
+size of 
+.I datatype
+(so that 
+.I count
+would not be integral), a 
+.I count
+of
+.I MPI_UNDEFINED
+is returned instead.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Get_elements
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_elements.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_elements.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_elements.3	(revision 97)
@@ -0,0 +1,80 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Get_elements 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get_elements \fP \- Returns the number of basic elements in a data type.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Get_elements(MPI_Status *\fIstatus\fP, MPI_Datatype\fI datatype\fP,
+	int\fI *count\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GET_ELEMENTS(\fISTATUS, DATATYPE, COUNT, IERROR\fP)
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Status::Get_elements(const Datatype& \fIdatatype\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Return status of receive operation (status).
+.TP 1i
+datatype
+Datatype used by receive operation (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+count     Number of received basic elements (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Get_elements behaves different from MPI_Get_count, which returns the number of "top-level entries" received, i.e., the number of "copies" of type datatype. MPI_Get_count may return any integer value k, where 0 =< k =< count. If MPI_Get_count returns k, then the number of basic elements received (and the value returned by  MPI_Get_elements) is n * k, where n is the number of basic elements in the type map of datatype. If the number of basic elements received is not a multiple of n, that is, if the receive operation has not received an integral number of datatype "copies," then MPI_Get_count returns the value MPI_UNDEFINED.
+.sp
+\fBExample:\fP Usage of MPI_Get_count and MPI_Get_element:  
+.sp
+.nf
+  \&... 
+  CALL MPI_TYPE_CONTIGUOUS(2, MPI_REAL, Type2, ierr) 
+  CALL MPI_TYPE_COMMIT(Type2, ierr) 
+  \&... 
+  CALL MPI_COMM_RANK(comm, rank, ierr) 
+  IF(rank.EQ.0) THEN 
+        CALL MPI_SEND(a, 2, MPI_REAL, 1, 0, comm, ierr) 
+        CALL MPI_SEND(a, 3, MPI_REAL, 1, 0, comm, ierr) 
+  ELSE 
+        CALL MPI_RECV(a, 2, Type2, 0, 0, comm, stat, ierr) 
+        CALL MPI_GET_COUNT(stat, Type2, i, ierr)     ! returns i=1 
+        CALL MPI_GET_ELEMENTS(stat, Type2, i, ierr)  ! returns i=2 
+        CALL MPI_RECV(a, 2, Type2, 0, 0, comm, stat, ierr) 
+        CALL MPI_GET_COUNT(stat, Type2, i, ierr) ! returns i=MPI_UNDEFINED
+        CALL MPI_GET_ELEMENTS(stat, Type2, i, ierr)  ! returns i=3 
+  END IF 
+.fi
+.sp
+The function MPI_Get_elements can also be used after a probe to find the number of elements in the probed message. Note that the two functions MPI_Get_count and MPI_Get_elements return the same values when they are used with primitive data types. 
+  
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Get_count
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_processor_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_processor_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_processor_name.3	(revision 97)
@@ -0,0 +1,58 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Get_processor_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get_processor_name \fP \- Gets the name of the processor.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Get_processor_name(char *\fIname\fP, int *\fIresultlen\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GET_PROCESSOR_NAME(\fINAME, RESULTLEN, IERROR\fP)
+	CHARACTER*(*)	\fINAME\fP
+	INTEGER		\fIRESULTLEN, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Get_processor_name(char* \fIname\fP, int& \fIresultlen\fP)
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+name
+A unique specifier for the actual (as opposed to virtual) node.
+.TP 1i
+resultlen
+Length (in characters) of result returned in name.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine returns the name of the processor on which it was called at the moment of the call. The name is a character string for maximum flexibility. From this value it must be possible to identify a specific piece of hardware. The argument name must represent storage that is at least MPI_MAX_PROCESSOR_NAME characters long. 
+.sp
+The number of characters actually written is returned in the output
+argument, resultlen. 
+.sp
+.SH NOTES
+.ft R
+The user must provide at least MPI_MAX_PROCESSOR_NAME space to write the processor name; processor names can be this long. The user should examine the output argument, resultlen, to determine the actual length of the name.
+.sp
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_version.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_version.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Get_version.3	(revision 97)
@@ -0,0 +1,55 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Get_version 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Get_version\fP \- Returns the version of the standard corresponding to the current implementation. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Get_version(int \fI*version\fP, int \fI*subversion\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GET_VERSION(\fIVERSION\fP, \fISUBVERSION\fP, \fIIERROR\fP)
+	INTEGER	\fIVERSION\fP, \fISUBVERSION\fP, \fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Get_version(int& \fIversion\fP, int& \fIsubversion\fP)
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+version
+The major version number of the corresponding standard (integer).
+
+.ft R
+.TP 1i
+subversion
+The minor version number of the corresponding standard (integer).
+
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Since Open MPI is MPI 2.0 compliant, this function will return a version value of 2 and a subversion value of 0 for this release. 
+
+.SH NOTE
+.ft R
+MPI_Get_version is one of the few functions that can be called before MPI_Init and after MPI_Finalize. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_create.3	(revision 97)
@@ -0,0 +1,106 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graph_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graph_create \fP \- Makes a new communicator to which topology information has been attached.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graph_create(MPI_Comm \fIcomm_old\fP, int\fI nnodes\fP, int\fI *index\fP,
+	int\fI *edges\fP, int\fI reorder\fP, MPI_Comm\fI *comm_graph\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPH_CREATE(\fICOMM_OLD, NNODES, INDEX, EDGES, REORDER,
+		COMM_GRAPH, IERROR\fP)
+	INTEGER	\fICOMM_OLD, NNODES, INDEX(*), EDGES(*)\fP
+	INTEGER	\fICOMM_GRAPH, IERROR\fP
+	LOGICAL   \fIREORDER\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Graphcomm Intracomm::Create_graph(int \fInnodes\fP, const int \fIindex\fP[], 
+	const int \fIedges\fP[], bool \fIreorder\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm_old
+Input communicator without topology (handle).
+.TP 1i
+nnodes
+Number of nodes in graph (integer).
+.TP 1i
+index
+Array of integers describing node degrees (see below).
+.TP 1i
+edges
+Array of integers describing graph edges (see below).
+.TP 1i
+reorder
+Ranking may be reordered (true) or not (false) (logical).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+comm_graph
+Communicator with graph topology added (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Graph_create returns a handle to a new communicator to which the graph topology information is attached. If reorder = false then the rank of each process in the new group is identical to its rank in the old group. Otherwise, the function may reorder the processes. If the size, nnodes, of the graph is smaller than the size of the group of comm_old, then some processes are returned MPI_COMM_NULL, in analogy to MPI_Cart_create and MPI_Comm_split. The call is erroneous if it specifies a graph that is larger than the group size of the input communicator. 
+.sp
+The three parameters nnodes, index, and edges define the graph structure. nnodes is the number of nodes of the graph. The nodes are numbered from 0 to nnodes-1. The ith entry of array index stores the total number of neighbors of the first i graph nodes. The lists of neighbors of nodes 0,\ 1,\ ..., nnodes-1 are stored in consecutive locations in array edges. The array edges is a flattened representation of the edge lists. The total number of entries in index is nnodes and the total number of entries in edges is equal to the number of graph edges.
+.sp
+The definitions of the arguments nnodes, index, and edges are illustrated with the following simple example.
+.sp
+\fBExample:\fP Assume there are four processes 0, 1, 2, 3 with the
+following adjacency matrix:
+.sp
+.nf
+    Process	Neighbors
+       0		   1, 3
+       1		   0
+       2		   3
+       3		   0, 2
+.fi
+.sp
+Then, the input arguments are:
+.nf
+    nnodes = 4
+    index  = 2, 3, 4, 6
+    edges  = 1, 3, 0, 3, 0, 2
+.fi
+.sp
+Thus, in C, index[0] is the degree of node zero, and index[i] - index[i-1]
+is the degree of node i, i=1, . . . , nnodes-1;  the list of neighbors of
+node zero is stored in edges[j], for 0 <= j <= index[0] - 1 and the list of
+neighbors of node i, i > 0 ,  is stored in edges[j], index[i-1] <= j <= index[i] - 1. 
+.sp
+In Fortran, index(1) is the degree of node zero, and index(i+1) - index(i)
+is the degree of node i, i=1, . . . , nnodes-1;  the list of neighbors of
+node zero is stored in edges(j), for 1 <= j <= index(1) and the list of
+neighbors of node  i, i > 0, is stored in edges(j), index(i) + 1 <= j <= index(i + 1). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_get
+.br
+MPI_Graphdims_get
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_get.3	(revision 97)
@@ -0,0 +1,72 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graph_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graph_get \fP \- Retrieves graph topology information associated with a communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graph_get(MPI_Comm \fIcomm\fP, int\fI maxindex\fP, int\fI maxedges\fP,
+	int\fI *index\fP, int\fI *edges\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPH_GET(\fICOMM, MAXINDEX, MAXEDGES, INDEX, EDGES, IERROR\fP)
+	INTEGER	\fICOMM, MAXINDEX, MAXEDGES, INDEX(*)\fP
+	INTEGER	\fIEDGES(*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Graphcomm::Get_topo(int \fImaxindex\fP, int \fImaxedges\fP, 
+	int \fIindex\fP[], int \fIedges\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with graph structure (handle).
+.TP 1i
+maxindex
+Length of vector index in the calling program (integer).
+.TP 1i
+maxedges
+Length of vector edges in the calling program (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+index
+Array of integers containing the graph structure (for details see the
+definition of MPI_Graph_create).
+.TP 1i
+edges
+Array of integers containing the graph structure.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Functions MPI_Graphdims_get and MPI_Graph_get retrieve the graph-topology information that was associated with a communicator by MPI_Graph_create.
+.sp
+The information provided by MPI_Graphdims_get can be used to dimension the vectors index and edges correctly for a call to MPI_Graph_get.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_create
+.br
+MPI_Graphdims_get
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_map.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_map.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_map.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graph_map 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graph_map \fP \- Maps process to graph topology information.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graph_map(MPI_Comm \fIcomm\fP, int\fI nnodes\fP, int\fI *index\fP,
+	int\fI *edges\fP, int\fI *newrank\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPH_MAP(\fICOMM, NNODES, INDEX, EDGES, NEWRANK, IERROR\fP)
+	INTEGER	\fICOMM, NNODES, INDEX(*), EDGES(*), NEWRANK, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Graphcomm::Map(int \fInnodes\fP, const int \fIindex\fP[], 
+	const int \fIedges\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Input communicator (handle).
+.TP 1i
+nnodes
+Number of graph nodes (integer).
+.TP 1i
+index
+Integer array specifying the graph structure, see  MPI_Graph_ create.
+.TP 1i
+edges
+Integer array specifying the graph structure.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newrank
+Reordered rank of the calling process; MPI_UNDEFINED if the calling process does not belong to graph (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Cart_map and MPI_Graph_map can be used to implement all other topology
+functions. In general they will not be called by the user directly, unless he or she is creating additional virtual topology capability other than that provided by MPI.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.sp
+MPI_Cart_map
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors.3	(revision 97)
@@ -0,0 +1,94 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graph_neighbors 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graph_neighbors \fP \- Returns the neighbors of a node associated with a graph topology.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graph_neighbors(MPI_Comm \fIcomm\fP, int\fI rank\fP, int\fI maxneighbors\fP,
+	int\fI *neighbors\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPH_NEIGHBORS(\fICOMM, RANK, MAXNEIGHBORS, NEIGHBORS, IERROR\fP)
+	INTEGER	\fICOMM, RANK, MAXNEIGHBORS, NEIGHBORS(*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Graphcomm::Get_neighbors(int \fIrank\fP, int \fImaxneighbors\fP, 
+	int \fIneighbors\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with graph topology (handle).
+.TP 1i
+rank
+Rank of process in group of comm (integer).
+.TP 1i
+maxneighbors
+Size of array neighbors (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+neighbors
+Ranks of processes that are neighbors to specified process (array of integers).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+\fBExample:\fP  Suppose that comm is a communicator with a shuffle-exchange
+topology. The group has 2n members. Each process is labeled by a(1),\ ..., a(n) with a(i) E{0,1}, and has three neighbors: exchange (a(1),\ ..., a(n) = a(1),\ ..., a(n-1), a(n) (a = 1 - a), shuffle (a(1),\ ..., a(n)) = a(2),\ ..., a(n), a(1), and unshuffle (a(1),\ ..., a(n)) = a(n), a(1),\ ..., a(n-1). The graph adjacency list is illustrated below for n=3.
+.sp
+.nf
+        		exchange		shuffle		unshuffle
+    node		neighbors(1)	neighbors(2)	neighbors(3)
+    0(000)	    1		    0		    0
+    1(001)	    0		    2		    4
+    2(010)	    3		    4		    1
+    3(011)	    2		    6		    5
+    4(100)	    5		    1		    2
+    5(101)	    4		    3		    6
+    6(110)	    7		    5		    3
+    7(111)	    6		    7		    7
+.fi
+.sp
+Suppose that the communicator comm has this topology associated with it. The following code fragment cycles through the three types of neighbors and performs an appropriate permutation for each.
+.sp
+.nf
+C  assume: each process has stored a real number A. 
+C  extract neighborhood information 
+      CALL MPI_COMM_RANK(comm, myrank, ierr) 
+      CALL MPI_GRAPH_NEIGHBORS(comm, myrank, 3, neighbors, ierr) 
+C  perform exchange permutation 
+      CALL MPI_SENDRECV_REPLACE(A, 1, MPI_REAL, neighbors(1), 0, 
+     +     neighbors(1), 0, comm, status, ierr) 
+C  perform shuffle permutation 
+      CALL MPI_SENDRECV_REPLACE(A, 1, MPI_REAL, neighbors(2), 0, 
+     +     neighbors(3), 0, comm, status, ierr) 
+C  perform unshuffle permutation 
+      CALL MPI_SENDRECV_REPLACE(A, 1, MPI_REAL, neighbors(3), 0, 
+     +     neighbors(2), 0, comm, status, ierr)
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_neighbors_count
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors_count.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors_count.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graph_neighbors_count.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graph_neighbors_count 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graph_neighbors_count \fP \- Returns the number of neighbors of a node associated with a graph topology.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graph_neighbors_count(MPI_Comm \fIcomm\fP, int\fI rank\fP,
+	int\fI *nneighbors\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPH_NEIGHBORS_COUNT(\fICOMM, RANK, NNEIGHBORS, IERROR\fP)
+	INTEGER	\fICOMM, RANK, NNEIGHBORS, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Graphcomm::Get_neighbors_count(int \fIrank\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+comm
+Communicator with graph topology (handle).
+.TP 1i
+rank
+Rank of process in group of comm (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+nneighbors
+Number of neighbors of specified process (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Graph_neighbors_count and MPI_Graph_neighbors provide adjacency information for a general, graph topology. MPI_Graph_neighbors_count returns the number of neighbors for the process signified by rank. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_neighbors
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graphdims_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graphdims_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Graphdims_get.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Graphdims_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Graphdims_get \fP \- Retrieves graph topology information associated with a communicator.
+
+.SH SYNTAX
+.ft R
+.nf
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Graphdims_get(MPI_Comm \fIcomm\fP, int\fI *nnodes\fP, int\fI *nedges\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GRAPHDIMS_GET(\fICOMM, NNODES, NEDGES, IERROR\fP)
+	INTEGER	\fICOMM, NNODES, NEDGES, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Graphcomm::Get dims(int \fInnodes\fP[], int \fInedges\fP[]) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator for group with graph structure (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+nnodes
+Number of nodes in graph (integer).
+.TP 1i
+nedges
+Number of edges in graph (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Functions MPI_Graphdims_get and MPI_Graph_get retrieve the graph-topology information that was associated with a communicator by MPI_Graph_create.
+.sp
+The information provided by MPI_Graphdims_get can be used to dimension the vectors index and edges correctly for a call to MPI_Graph_get.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Graph_create
+.br
+MPI_Graph_get
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_complete.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_complete.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_complete.3	(revision 97)
@@ -0,0 +1,49 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Grequest_complete 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Grequest_complete \fP \- Reports that a generalized request is complete. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Grequest_complete(MPI_Request \fIrequest\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GREQUEST_COMPLETE(\fIREQUEST, IERROR\fP)
+	INTEGER	\fIREQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Grequest::Complete()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+request
+Generalized request (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Grequest_complete informs MPI that the operations represented by the generalized request \fIrequest\fP are complete. A call to MPI_Wait(\fIrequest, status\fP) will return, and a call to MPI_Test(\fIrequest, flag, status\fP) will return flag=true only after a call to MPI_Grequest_complete has declared that these operations are complete. 
+.sp
+MPI imposes no restrictions on the code executed by the callback functions. However, new nonblocking operations should be defined so that the general semantic rules about MPI calls such as MPI_Test, MPI_Request_free, or MPI_Cancel still hold. For example, all these calls are supposed to be local and nonblocking. Therefore, the callback functions \fIquery_fn\fP, \fIfree_fn\fP, or \fIcancel_fn\fP should invoke blocking MPI communication calls only if the context is such that these calls are guaranteed to return in finite time. Once MPI_Cancel has been invoked, the canceled operation should complete in finite time, regardless of the state of other processes (the operation has acquired "local" semantics). It should either succeed or fail without side-effects. The user should guarantee these same properties for newly defined operations. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_start.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_start.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Grequest_start.3	(revision 97)
@@ -0,0 +1,164 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Grequest_start 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Grequest_start \fP \- Starts a generalized request and returns a handle to it in \fIrequest\fP. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Grequest_start(MPI_Grequest_query_function \fI*query_fn\fP, 
+	MPI_Grequest_free_function \fI*free_fn\fP, 
+	MPI_Grequest_cancel_function \fI*cancel_fn\fP, void \fI*extra_state\fP,
+	MPI_Request \fI*request\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_GREQUEST_START(\fIQUERY_FN, FREE_FN, CANCEL_FN, EXTRA_STATE, 
+	REQUEST, IERROR\fP)
+	INTEGER	\fIREQUEST, IERROR\fP
+	EXTERNAL \fIQUERY_FN, FREE_FN, CANCEL_FN\fP
+	INTEGER (KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Grequest
+             MPI::Grequest::Start(const MPI::Grequest::Query_function
+             \fIquery_fn\fP, const MPI::Grequest::Free_function \fIfree_fn\fP,
+             const MPI::Grequest::Cancel_function \fIcancel_fn\fP,
+             void \fI*extra_state\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+query_fn
+Callback function invoked when request status is queried (function).
+.TP 1i
+free_fn
+Callback function invoked when request is freed (function).
+.TP 1i
+cancel_fn
+Callback function invoked when request is canceled (function).
+.TP 1i
+extra_state
+Extra state.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Generalized request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Grequest_start starts a generalized request and returns a handle to it in \fIrequest\fP.
+.sp
+The syntax and meaning of the callback functions are listed below. All callback functions are passed the \fIextra_state\fP argument that was associated with the request by the starting call MPI_Grequest_start. This can be used to maintain user-defined state for the request. In C, the query function is
+.sp
+.nf
+   typedef int MPI_Grequest_query_function(void \fI*extra_state\fP,
+                MPI_Status \fI*status\fP);
+.fi
+.sp
+In Fortran, it is
+.sp
+.nf
+   SUBROUTINE GREQUEST_QUERY_FUNCTION(\fIEXTRA_STATE, STATUS, IERROR\fP)
+       INTEGER STATUS(MPI_STATUS_SIZE), \fIIERROR\fP
+       INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+.fi
+.sp
+and in C++, it is
+.sp
+.nf
+   typedef int MPI::Grequest::Query_function(void* \fIextra_state\fP,
+                MPI::Status& \fIstatus\fP);
+.fi
+.sp
+The \fIquery_fn\fP function computes the status that should be returned for the generalized request. The status also includes information about successful/unsuccessful cancellation of the request (result to be returned by MPI_Test_cancelled).
+.sp
+The \fIquery_fn\fP function is invoked by the MPI_{Wait|Test}{any|some|all} call that completed the generalized request associated with this callback. The callback function is also invoked by calls to MPI_Request_get_status if the request is complete when the call occurs. In both cases, the callback is passed a reference to the corresponding status variable passed by the user to the MPI call. If the user provided MPI_STATUS_IGNORE or MPI_STATUSES_IGNORE to the MPI function that causes \fIquery_fn\fP to be called, then MPI will pass a valid status object to \fIquery_fn\fP, and this status will be ignored upon return of the callback function. Note that \fIquery_fn\fP is invoked only after MPI_Grequest_complete is called on the request; it may be invoked several times for the same generalized request. Note also that a call to MPI_{Wait|Test}{some|all} may cause multiple invocations of \fIquery_fn\fP callback functions, one for each generalized request that is completed by the MPI call. The order of these invocations is not specified by MPI. 
+.sp
+In C, the free function is
+.sp
+.nf
+   typedef int MPI_Grequest_free_function(void *\fIextra_state\fP);
+.fi
+.sp
+In Fortran, it is
+.sp
+.nf
+   SUBROUTINE GREQUEST_FREE_FUNCTION(\fIEXTRA_STATE, IERROR\fP)
+       INTEGER \fIIERROR\fP
+       INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+.fi
+.sp
+And in C++, it is
+.sp
+.nf
+   typedef int MPI::Grequest::Free_function(void* \fIextra_state\fP);
+.fi
+.sp
+The \fIfree_fn\fP callback function is invoked to clean up user-allocated resources when the generalized request is freed.
+.sp
+The \fIfree_fn\fP function is invoked by the MPI_{Wait|Test}{any|some|all} call that completed the generalized request associated with this callback. \fIfree_fn\fP is invoked after the call to \fIquery_fn\fP for the same request. However, if the MPI call completed multiple generalized requests, the order in which \fIfree_fn\fP callback functions are invoked is not specified by MPI. 
+.sp
+The \fIfree_fn\fP callback is also invoked for generalized requests that are freed by a call to MPI_Request_free (no call to MPI_{Wait|Test}{any|some|all} will occur for such a request). In this case, the callback function will be called either in the MPI call MPI_Request_free(request) or in the MPI call MPI_Grequest_complete(request), whichever happens last. In other words, in this case the actual freeing code is executed as soon as both calls (MPI_Request_free and MPI_Grequest_complete) have occurred. The \fIrequest\fP is not deallocated until after \fIfree_fn\fP completes. Note that \fIfree_fn\fP will be invoked only once per request by a correct program. 
+.sp
+In C, the cancel function is
+.sp
+.nf
+   typedef int MPI_Grequest_cancel_function(void *\fIextra_state\fP, int \fIcomplete\fP);
+.fi
+.sp
+In Fortran, the cancel function is
+.sp
+.nf
+   SUBROUTINE GREQUEST_CANCEL_FUNCTION(\fIEXTRA_STATE, COMPLETE, IERROR\fP)
+       INTEGER \fIIERROR\fP
+       INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+       LOGICAL \fICOMPLETE\fP
+.fi
+.sp
+In C++, the cancel function is
+.sp
+.nf
+   typedef in MPI::Grequest::Cancel_function(void* \fIextra_state\fP,
+               bool \fIcomplete\fP);
+.fi
+.sp
+The \fIcancel_fn\fP function is invoked to start the cancelation of a generalized request. It is called by MPI_Request_cancel(request). MPI passes to the callback function complete=true if MPI_Grequest_complete has already been called on the request, and complete=false otherwise. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIEXTRA_STATE\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIEXTRA_STATE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+All callback functions return an error code. The code is passed back and dealt with as appropriate for the error code by the MPI function that invoked the callback function. For example, if error codes are returned, then the error code returned by the callback function will be returned by the MPI function that invoked the callback function. In the case of a MPI_{Wait|Test}any call that invokes both \fIquery_fn\fP and \fIfree_fn\fP, the MPI call will return the error code returned by the last callback, namely \fIfree_fn\fP. If one or more of the requests in a call to MPI_{Wait|Test}{some|all} has failed, then the MPI call will return MPI_ERR_IN_STATUS. In such a case, if the MPI call was passed an array of statuses, then MPI will return in each of the statuses that correspond to a completed generalized request the error code returned by the corresponding invocation of its \fIfree_fn\fP callback function. However, if the MPI function was passed MPI_STATUSES_IGNORE, then the individual error codes returned by each callback function will be lost. 
+.sp
+See the MPI man page for a full list of MPI error codes. 
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_compare.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_compare.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_compare.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_compare 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_compare \fP \- Compares two groups.
+
+.SH SYNTAX
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_compare(MPI_Group \fIgroup1\fP, MPI_Group\fI group2\fP,
+	int\fI *result\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_COMPARE(\fIGROUP1, GROUP2, RESULT, IERROR\fP)
+	INTEGER	\fIGROUP1, GROUP2, RESULT, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int Group::Compare(const Group& \fIgroup1\fP, const Group& \fIgroup2\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group1
+First group (handle).
+.TP 1i
+group2
+Second group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+result
+Integer which is MPI_IDENT if the order and members of the two groups are the same, MPI_SIMILAR if only the members are the same, and MPI_UNEQUAL otherwise.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_IDENT results if the group members and group order is exactly the same in both groups. This happens for instance if group1 and group2 are the same handle. MPI_SIMILAR results if the group members are the same but the order is different. MPI_UNEQUAL results otherwise.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_difference.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_difference.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_difference.3	(revision 97)
@@ -0,0 +1,72 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_difference 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_difference \fP \- Makes a group from the difference of two groups.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_difference(MPI_Group \fIgroup1\fP, MPI_Group\fI group2\fP,
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_DIFFERENCE(\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static Group Group::Difference(const Group& \fIgroup1\fP, const Group& \fIgroup2\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group1
+First group (handle).
+.TP 1i
+group2
+Second group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+Difference group (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The set-like operations are defined as follows:
+.TP
+  o
+union -- All elements of the first group (group1), followed by all elements
+of second group (group2) that are not in the first group
+.TP
+  o
+intersect -- all elements of the first group that are also in the second
+group, ordered as in first group
+.TP
+  o
+difference -- all elements of the first group that are not in the second group, ordered as in the first group
+.LP
+Note that for these operations the order of processes in the output group is determined primarily by order in the first group (if possible) and then, if necessary, by order in the second group. Neither union nor intersection are commutative, but both are associative. 
+.sp
+The new group can be empty, that is, equal to MPI_GROUP_EMPTY.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Group_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_excl.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_excl.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_excl.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_excl 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_excl\fP \- Produces a group by reordering an existing group and taking only unlisted members.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_excl(MPI_Group \fIgroup\fP, int\fI n\fP, int\fI *ranks\fP,
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_EXCL(\fIGROUP, N, RANKS, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP, N, RANKS(*), NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Group::Excl(int \fIn\fP, const int \fIranks\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+.TP 1i
+n
+Number of elements in array ranks (integer).
+.TP 1i
+ranks
+Array of integer ranks in group not to appear in newgroup.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+New group derived from above, preserving the order defined by group (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Group_excl creates a group of processes newgroup that is obtained by deleting from group those processes with ranks ranks[0], \&... ranks[n-1]. The ordering of processes in newgroup is identical to the ordering in group. Each of the n elements of ranks must be a valid rank in group and all elements must be distinct; otherwise, the call is erroneous. If n = 0, then newgroup is identical to group. 
+
+.SH NOTE
+.ft R
+Currently, each of the ranks to exclude must be a valid rank in the group and all elements must be distinct or the function is erroneous. This restriction is per the draft. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Group_range_excl
+.br
+MPI_Group_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_free.3	(revision 97)
@@ -0,0 +1,49 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_free \fP \- Frees a group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_free(MPI_Group *\fIgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_FREE(\fIGROUP, IERROR\fP)
+	INTEGER	\fIGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Group::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.TP 1i
+group
+Group (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This operation marks a group object for deallocation. The handle group is set to MPI_GROUP_NULL by the call. Any ongoing operation using this group will complete normally. 
+
+.SH NOTE
+.ft R
+On return, group is set to MPI_GROUP_NULL.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_incl.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_incl.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_incl.3	(revision 97)
@@ -0,0 +1,71 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_incl 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_incl \fP \- Produces a group by reordering an existing group and taking only listed members.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_incl(MPI_Group \fIgroup\fP, int\fI n\fP, int\fI *ranks\fP,
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_INCL(\fIGROUP, N, RANKS, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP, N, RANKS(*), NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Group::Incl(int \fIn\fP, const int \fIranks\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+.TP 1i
+n
+Number of elements in array ranks (and size of \fInewgroup\fP)(integer).
+.TP 1i
+ranks
+Ranks of processes in group to appear in newgroup (array of integers).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+New group derived from above, in the order defined by ranks (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Group_incl creates a group group_out that consists of the n processes in group with ranks rank[0], \&..., rank[n-1]; the process with rank i in group_out is the process with rank ranks[i] in group. Each of the n elements of ranks must be a valid rank in group and all elements must be distinct, or else the program is erroneous. If n = 0, then group_out is MPI_GROUP_EMPTY. This function can, for instance, be used to reorder the elements of a group.
+
+.SH NOTE
+.ft R
+This implementation does not currently check to ensure that there are no
+duplicates in the list of ranks.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Group_compare
+.br
+MPI_Group_range_incl
+.br
+MPI_Group_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_intersection.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_intersection.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_intersection.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_intersection 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_intersection \fP \- Produces a group at the intersection of two existing groups.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_intersection(MPI_Group \fIgroup1\fP, MPI_Group\fI group2\fP,
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_INTERSECTION(\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static Group Group::Intersect(const Group& \fIgroup1\fP, const Group& \fIgroup2\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group1
+First group (handle).
+.TP 1i
+group2
+Second group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+Intersection group (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The set-like operations are defined as follows:
+.TP
+  o
+union -- All elements of the first group (group1), followed by all elements
+of second group (group2) not in first.
+.TP
+  o
+intersect -- all elements of the first group that are also in the second
+group, ordered as in first group.
+.TP
+  o
+difference -- all elements of the first group that are not in the second group, ordered as in the first group.  
+.LP
+Note that for these operations the order of processes in the output group is determined primarily by order in the first group (if possible) and then, if necessary, by order in the second group. Neither union nor intersection are commutative, but both are associative. 
+.sp
+The new group can be empty, that is, equal to MPI_GROUP_EMPTY.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Group_free
+.br
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_excl.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_excl.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_excl.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_range_excl 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_range_excl\fP \- Produces a group by excluding ranges of processes from an existing group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_range_excl(MPI_Group \fIgroup\fP, int\fI n\fP, int\fI ranges\fP[][3],
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_RANGE_EXCL(\fIGROUP, N, RANGES, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP, N, RANGES(3,*), NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Group::Range_excl(int \fIn\fP, const int \fIranges\fP[][3]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+.TP 1i
+n
+Number of triplets in array ranges (integer).
+.TP 1i
+ranges
+A one-dimensional array of integer triplets of the form (first rank, last rank, stride), indicating the ranks in group of processes to be excluded from the output group newgroup.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+New group derived from above, preserving the order in group (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Each computed rank must be a valid rank in group and all computed ranks must be distinct, or else the program is erroneous.  
+.sp
+The functionality of this routine is specified to be equivalent to
+expanding the array of ranges to an array of the excluded ranks and passing the resulting array of ranks and other arguments to MPI_Group_excl. A call to MPI_Group_excl is equivalent to a call to MPI_Group_range_excl with each rank i in ranks replaced by the triplet (i,i,1) in the argument ranges.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Group_excl 
+.br
+MPI_Group_free
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_incl.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_incl.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_range_incl.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_range_incl 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_range_incl\fP \- Creates a new group from ranges of ranks in an existing group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_range_incl(MPI_Group \fIgroup\fP, int\fI n\fP, int\fI ranges\fP[][3],
+	MPI_Group\fI *newgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_RANGE_INCL(\fIGROUP, N, RANGES, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP, N, RANGES(3,*), NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Group Group::Range_incl(int \fIn\fP, const int \fIranges\fP[][3]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+.TP 1i
+n
+Number of triplets in array ranges (integer).
+.TP 1i
+ranges
+A one-dimensional array of integer triplets, of the form (first rank, last rank, stride) indicating ranks in group or processes to be included in newgroup.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+New group derived from above, in the order defined by ranges (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If ranges consist of the triplets 
+.sp
+.nf
+    (first1, last1, stride1),\ ..., (firstn, lastn, striden)
+.fi
+.sp
+then newgroup consists of the sequence of processes in group with ranks
+.sp
+.nf
+                                                 last(1)-first(1)
+  first(1), first(1) + stride(1),..., first(1) + ---------------- stride(1),...
+                                                     stride(1)
+
+                                                 last(n)-first(n)
+  first(n), first(n) + stride(n),..., first(n) + ---------------- stride(n).
+                                                     stride(n)
+.fi
+.sp
+Each computed rank must be a valid rank in group and all computed ranks must be distinct, or else the program is erroneous. Note that we may have first(i) > last(i), and stride(i) may be negative, but cannot be zero.
+.sp
+The functionality of this routine is specified to be equivalent to expanding the array of ranges to an array of the included ranks and passing the resulting array of ranks and other arguments to MPI_Group_incl. A call to MPI_Group_incl is equivalent to a call to MPI_Group_range_incl with each rank i in ranks replaced by the triplet (i,i,1) in the argument ranges.
+
+.SH NOTE
+.ft R
+This implementation does not currently check to see that the list of ranges to include are valid ranks in the group.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Group_incl 
+.br
+MPI_Group_free
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_rank.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_rank.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_rank.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_rank 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_rank\fP \- Returns the rank of the calling process in the given group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_rank(MPI_Group \fIgroup\fP, int *\fIrank\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_RANK(\fIGROUP, RANK, IERROR\fP) 
+	INTEGER	\fIGROUP, RANK, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Group::Get_rank() const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+rank
+Rank of the calling process in group, or MPI_UNDEFINED if the process is not a member (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Group_rank returns as the output parameter \fIrank\fP the rank of the calling process in group. If the process is not a member of group then MPI_UNDEFINED is returned.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_size.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_size\fP \- Returns the size of a group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_size(MPI_Group \fIgroup\fP, int \fI*size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_SIZE(\fIGROUP, SIZE, IERROR\fP)
+	INTEGER	\fIGROUP, SIZE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Group::Get_size() const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Number of processes in the group (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Group_size returns in \fIsize\fP the number of processes in the group. Thus, if group = MPI_GROUP_EMPTY, then the call will return size = 0. On the other hand, a call with group = MPI_GROUP_NULL is erroneous.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_translate_ranks.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_translate_ranks.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_translate_ranks.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_translate_ranks 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_translate_ranks\fP \- Translates the ranks of processes in one group to those in another group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_translate_ranks(MPI_Group \fIgroup1\fP, int\fI n\fP,
+	int\fI *ranks1\fP, MPI_Group\fI group2\fP, int\fI *ranks2\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_TRANSLATE_RANKS(\fIGROUP1, N, RANKS1, GROUP2, RANKS2,
+		IERROR\fP)
+	INTEGER	\fIGROUP1, N, RANKS1(*), GROUP2, RANKS2(*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void Group::Translate_ranks (const Group& \fIgroup1\fP, int \fIn\fP, 
+	const int \fIranks1\fP[], const Group& \fIgroup2\fP, int \fIranks2\fP[]) 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group1
+First group (handle).
+.TP 1i
+n
+Number of ranks in ranks1 and ranks2 arrays (integer).
+.TP 1i
+ranks1
+Array of zero or more valid ranks in group1.
+.TP 1i
+group2
+Second group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+ranks2
+Array of corresponding ranks in group2, MPI_UNDEFINED when no correspondence exists. 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function is important for determining the relative numbering of the same processes in two different groups. For instance, if one knows the ranks of certain processes in the group of MPI_COMM_WORLD, one might want to know their ranks in a subset of that group.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_union.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_union.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Group_union.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Group_union 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Group_union \fP \- Produces a group by combining two groups.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Group_union(MPI_Group \fIgroup1\fP, MPI_Group \fIgroup2\fP,
+	MPI_Group *\fInewgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_GROUP_UNION(\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP)
+	INTEGER	\fIGROUP1, GROUP2, NEWGROUP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static Group Group::Union(const Group& \fIgroup1\fP, const Group& \fIgroup2\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group1
+First group (handle).
+.TP 1i
+group2
+Second group (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newgroup
+Union group (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The set-like operations are defined as follows:
+.TP
+  o
+union -- All elements of the first group (group1), followed by all elements
+of second group (group2) not in first.
+.TP
+  o
+intersect -- all elements of the first group that are also in the second
+group, ordered as in first group.
+.TP
+  o
+difference -- all elements of the first group that are not in the second group, ordered as in the first group.  
+.sp
+.LP
+Note that for these operations the order of processes in the output group is determined primarily by order in the first group (if possible) and then, if necessary, by order in the second group. Neither union nor intersection are commutative, but both are associative. 
+.sp
+The new group can be empty, that is, equal to MPI_GROUP_EMPTY.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Group_free
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ibsend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ibsend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ibsend.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Ibsend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Ibsend\fP \- Starts a nonblocking buffered send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Ibsend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_IBSEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Request Comm::Ibsend(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Data type of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Ibsend posts a buffered-mode, nonblocking send. Nonblocking calls allocate a communication request object and associate it with the request handle (the argument request). The request can be used later to query the status of the communication or wait for its completion. 
+.sp
+A nonblocking send call indicates that the system may start copying data out of the send buffer. The sender should not access any part of the send buffer after a nonblocking send operation is called, until the send completes. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Test
+MPI_Wait
+.br
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_create.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_create\fP \- Creates a new info object.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_create(MPI_Info \fI*info\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_CREATE(\fIINFO, IERROR\fP)
+	INTEGER	\fIINFO, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Info MPI::Info::Create()
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+info
+Info object created (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_create creates a new info object. The newly created object contains no key/value pairs. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_delete
+.br
+MPI_Info_dup
+.br
+MPI_Info_free
+.br
+MPI_Info_get
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_delete.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_delete.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_delete.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_delete 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_delete\fP \- Deletes a key/value pair from \fIinfo\fP. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_delete(MPI_Info \fIinfo\fP, char \fI*key\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_DELETE(\fIINFO, KEY, IERROR\fP)
+	INTEGER		\fIINFO, IERROR\fP 
+	CHARACTER*(*)	\fIKEY\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Info::Delete(const char* \fIkey\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+key
+Key (string).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_delete deletes a (key,value) pair from \fIinfo\fP. If \fIkey\fP is not defined in \fIinfo\fP, the call raises an error of class MPI_ERR_INFO_NOKEY.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_create
+.br
+MPI_Info_dup
+.br
+MPI_Info_free
+.br
+MPI_Info_get
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_dup.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_dup.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_dup.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_dup 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_dup\fP \- Duplicates an info object. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_dup(MPI_Info \fIinfo\fP, MPI_Info \fI*newinfo\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_DUP(\fIINFO, NEWINFO, IERROR\fP)
+	INTEGER		\fIINFO, NEWINFO, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Info MPI::Info::Dup() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newinfo
+Info object (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_dup duplicates an existing info object, creating a new object, with the same (key,value) pairs and the same ordering of keys. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_create
+.br
+MPI_Info_delete
+.br
+MPI_Info_free
+.br
+MPI_Info_get
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_free.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_free\fP \- Frees an info object. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_free(MPI_Info \fI*info\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_FREE(\fIINFO, IERROR\fP)
+	INTEGER		\fIINFO, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Info::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_free frees \fIinfo\fP and sets it to MPI_INFO_NULL. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_create
+.br
+MPI_Info_delete
+.br
+MPI_Info_dup
+.br
+MPI_Info_get
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get.3	(revision 97)
@@ -0,0 +1,86 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_get 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_get\fP \- Retrieves the value associated with a key in an info object. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_get(MPI_Info \fIinfo\fP, char \fI*key\fP, int \fIvaluelen\fP, char \fI*value\fP, int *\fIflag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_GET(\fIINFO, KEY, VALUELEN, VALUE, FLAG, IERROR\fP)
+	INTEGER	\fIINFO, VALUELEN, IERROR\fP 
+	CHARACTER*(*) \fIKEY, VALUE\fP
+	LOGICAL \fIFLAG\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Info::Get(const char* \fIkey\fP, int \fIvaluelen\fP, 
+	char* \fIvalue\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+info
+Info object (handle).
+.ft R
+.TP 1i
+key
+Key (string).
+.ft R
+.TP 1i
+valuelen
+Length of value arg (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+value
+Value (string).
+.ft R
+.TP 1i
+flag
+Returns true if key defined, false if not (boolean). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_get retrieves the value associated with \fIkey\fP in a previous call to MPI_Info_set. If such a key exists, it sets \fIflag\fP to true and returns the value in \fIvalue\fP; otherwise it sets \fIflag\fP to false and leaves \fIvalue\fP unchanged. \fIvaluelen\fP is the number of characters available in value. If it is less than the actual size of the value, the returned value is truncated. In C, \fIvaluelen\fP should be one less than the amount of allocated space to allow for the null terminator. 
+.sp
+If \fIkey\fP is larger than MPI_MAX_INFO_KEY, the call is erroneous. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_create
+.br
+MPI_Info_delete
+.br
+MPI_Info_dup
+.br
+MPI_Info_free
+.br
+MPI_Info_get_valuelen
+.br
+MPI_Info_get_nkeys
+.br
+MPI_Info_get_nthkey
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nkeys.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nkeys.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nkeys.3	(revision 97)
@@ -0,0 +1,59 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_get_nkeys 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_get_nkeys\fP \- Gets the number of keys currently defined in an info object. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_get_nkeys(MPI_Info \fIinfo\fP, int \fI*nkeys\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_GET_NKEYS(\fIINFO, NKEYS, IERROR\fP)
+	INTEGER		\fIINFO, NKEYS, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::Info::Get_nkeys() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+nkeys
+Number of defined keys (integer). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_get_nkeys returns the number of currently defined keys in \fIinfo\fP. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_get
+.br
+MPI_Info_get_nthkey
+.br
+MPI_Info_get_valueln
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nthkey.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nthkey.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_nthkey.3	(revision 97)
@@ -0,0 +1,64 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_get_nthkey 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_get_nthkey\fP \- Returns the \fIn\fPth defined key in \fIinfo\fP.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_get_nthkey(MPI_Info \fIinfo\fP, int \fIn\fP, char \fI*key\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_GET_NTHKEY(\fIINFO, N, KEY, IERROR\fP)
+	INTEGER		\fIINFO, N, IERROR\fP 
+	CHARACTER*(*)	\fIKEY\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Info::Get_nthkey(int \fIn\fP, char* \fIkey\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+info
+Info object (handle).
+.ft R
+.TP 1i
+n
+Key number (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+key
+Key (string). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_get_nthkey returns the \fIn\fPth defined key in \fIinfo\fP. Keys are numbered 0\...\fIN\fP - 1 where \fIN\fP is the value returned by MPI_Info_get_nkeys. All keys between 0 and \fIN\fP - 1 are guaranteed to be defined. The number of a given key does not change as long as \fIinfo\fP is not modified with MPI_Info_set or MPI_Info_delete. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_get
+.br
+MPI_Info_get_nkeys
+.br
+MPI_Info_get_valueln
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_valuelen.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_valuelen.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_get_valuelen.3	(revision 97)
@@ -0,0 +1,73 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_get_valuelen 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_get_valuelen\fP \- Retrieves the length of the key value associated with an info object. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_get_valuelen(MPI_Info \fIinfo\fP, char \fI*key\fP, 
+	int \fI*valuelen\fP, int \fI*flag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_GET_VALUELEN(\fIINFO, KEY, VALUELEN, FLAG, IERROR\fP)
+	INTEGER		\fIINFO, VALUELEN, IERROR\fP 
+	LOGICAL		\fIFLAG\fP
+	CHARACTER*(*)	\fIKEY\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Info::Get_valuelen(const char* \fIkey\fP, int& \fIvaluelen\fP) 
+	const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+info
+Info object (handle).
+.ft R
+.TP 1i
+key
+Key (string).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+valuelen
+Length of value arg (integer).
+.ft R
+.TP 1i
+flag
+Returns true if key defined, false if not (boolean). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_get_valuelen retrieves the length of the \fIvalue\fP associated with \fIkey\fP. If \fIkey\fP is defined, \fIvaluelen\fP is set to the length of its associated value and \fIflag\fP is set to true. If \fIkey\fP is not defined, \fIvaluelen\fP is not touched and \fIflag\fP is set to false. The length returned in C or C++ does not include the end-of-string character. 
+.sp
+If \fIkey\fP is larger than MPI_MAX_INFO_KEY, the call is erroneous. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_get
+.br
+MPI_Info_get_nkeys
+.br
+MPI_Info_get_nthkey
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_set.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_set.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Info_set.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Info_set 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Info_set\fP \- Adds a key/value pair to \fIinfo\fP.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Info_set(MPI_Info \fIinfo\fP, char \fI*key\fP, char \fI*value\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INFO_SET(\fIINFO, KEY, VALUE, IERROR\fP)
+	INTEGER		\fIINFO, IERROR\fP 
+	CHARACTER*(*)	\fIKEY, VALUE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Info::Set(const char* \fIkey\fP, const char* \fIvalue\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+info
+Info object (handle).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+key
+Key (string).
+.ft R
+.TP 1i
+value
+Value (string).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Info_set adds the (key,value) pair to \fIinfo\fP and overrides the value if a value for the same key was previously set. The \fIkey\fP and \fIvalue\fP parameters are null-terminated strings in C. In Fortran, leading and trailing spaces in \fIkey\fP and \fIvalue\fP are stripped. If either \fIkey\fP or \fIvalue\fP is larger than the allowed maximums, the error MPI_ERR_INFO_KEY or MPI_ERR_INFO_VALUE is raised, respectively. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Info_create
+.br
+MPI_Info_delete
+.br
+MPI_Info_dup
+.br
+MPI_Info_free
+.br
+MPI_Info_set
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init.3	(revision 97)
@@ -0,0 +1,99 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Init 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Init\fP \- Initializes the MPI execution environment
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Init(int *\fIargc\fP, char ***\fIargv\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INIT(\fIIERROR\fP)
+	INTEGER	\fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Init(int& \fIargc\fP, char**& \fIargv\fP)
+void MPI::Init()
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+argc
+C/C++ only: Pointer to the number of arguments.
+.TP 1i
+argv
+C/C++ only: Argument vector.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine, or MPI_Init_thread, must be called before any other MPI
+routine (apart from MPI_Initialized) is called. MPI can be initialized
+at most once; subsequent calls to MPI_Init or MPI_Init_thread are
+erroneous.
+.sp
+All MPI programs must contain a call to MPI_Init or
+MPI_Init_thread. Open MPI accepts the C/C++ \fIargc\fP and \fIargv\fP
+arguments to main, but neither modifies, interprets, nor distributes
+them:
+.sp
+.nf
+	{
+		/* declare variables */
+		MPI_Init(&argc, &argv);
+		/* parse arguments */
+		/* main program */ 
+		MPI_Finalize();
+	}
+.fi
+
+.SH NOTES
+.ft R
+The Fortran version does not have provisions for \fIargc\fP and
+\fIargv\fP and takes only IERROR.
+.sp
+The MPI Standard does not say what a program can do before an MPI_Init
+or after an MPI_Finalize. In the Open MPI implementation, it should do
+as little as possible. In particular, avoid anything that changes the
+external state of the program, such as opening files, reading standard
+input, or writing to standard output.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Init_thread
+MPI_Initialized
+MPI_Finalize
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init_thread.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init_thread.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Init_thread.3	(revision 97)
@@ -0,0 +1,129 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Init_thread 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Init_thread\fP \- Initializes the MPI execution environment
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Init_thread(int *\fIargc\fP, char ***\fIargv\fP,
+	int \fIrequired\fP, int *\fIprovided\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INIT(\fIREQUIRED, PROVIDED, IERROR\fP)
+	INTEGER	\fIREQUIRED, PROVIDED, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::Init_thread(int& \fIargc\fP, char**& \fIargv\fP, int \fIrequired\fP)
+int MPI::Init_thread(int \fIrequired\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+argc
+C/C++ only: Pointer to the number of arguments.
+.TP 1i
+argv
+C/C++ only: Argument vector.
+.TP 1i
+required
+Desired level of thread support (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+provided
+Available level of thread support (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine, or MPI_Init, must be called before any other MPI routine
+(apart from MPI_Initialized) is called. MPI can be initialized at most
+once; subsequent calls to MPI_Init or MPI_Init_thread are erroneous.
+.sp
+MPI_Init_thread, as compared to MPI_Init, has a provision to request a
+certain level of thread support in \fIrequired\fP:
+.TP 2.4i
+MPI_THREAD_SINGLE
+Only one thread will execute.
+.TP 2.4i
+MPI_THREAD_FUNNELED
+If the process is multithreaded, only the thread that called
+MPI_Init_thread will make MPI calls.
+.TP 2.4i
+MPI_THREAD_SERIALIZED
+If the process is multithreaded, only one thread will make MPI library
+calls at one time.
+.TP 2.4i
+MPI_THREAD_MULTIPLE
+If the process is multithreaded, multiple threads may call MPI at once
+with no restrictions.
+.SH
+The level of thread support available to the program is set in
+\fIprovided\fP, except in C++, where it is the return value of the
+function. In Open MPI, the value is dependent on how the library was configured and built. Note that there is no guarantee that \fIprovided\fP will be greater than or equal to
+\fIrequired\fP.
+.sp
+All MPI programs must contain a call to MPI_Init or
+MPI_Init_thread. Open MPI accepts the C/C++ \fIargc\fP and \fIargv\fP
+arguments to main, but neither modifies, interprets, nor distributes
+them:
+.sp
+.nf
+	{
+		/* declare variables */
+		MPI_Init_thread(&argc, &argv, req, &prov);
+		/* parse arguments */
+		/* main program */ 
+		MPI_Finalize();
+	}
+.fi
+
+.SH NOTES
+.ft R
+The Fortran version does not have provisions for \fIargc\fP and
+\fIargv\fP and takes only IERROR.
+.sp
+It is the caller's responsibility to check the value of \fIprovided\fP,
+as it may be less than what was requested in \fIrequired\fP.
+.sp
+The MPI Standard does not say what a program can do before an
+MPI_Init_thread or after an MPI_Finalize. In the Open MPI
+implementation, it should do as little as possible. In particular,
+avoid anything that changes the external state of the program, such as
+opening files, reading standard input, or writing to standard output.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Init
+MPI_Initialized
+MPI_Finalize
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Initialized.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Initialized.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Initialized.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Initialized 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Initialized\fP \- Indicates whether MPI_Init has been called.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Initialized(int *\fIflag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INITIALIZED(\fIFLAG, IERROR\fP)
+	LOGICAL	\fIFLAG\fP 
+	INTEGER	\fIIERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool Is_initialized()
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag
+Flag is true if MPI_Init has been called and false otherwise.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine may be used to determine whether MPI_Init has been called. It is the only routine that may be called before MPI_Init is called.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Init
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_create.3	(revision 97)
@@ -0,0 +1,100 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Intercomm_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Intercomm_create\fP \- Creates an intercommuncator from two intracommunicators.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Intercomm_create(MPI_Comm \fIlocal_comm\fP, int\fI local_leader\fP,
+	MPI_Comm\fI peer_comm\fP, int\fI remote_leader\fP, int\fI tag\fP, MPI_Comm\fI *newintercomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INTERCOMM_CREATE(\fILOCAL_COMM, LOCAL_LEADER, PEER_COMM,
+		REMOTE_LEADER, TAG, NEWINTERCOMM, IERROR\fP)
+	INTEGER	\fILOCAL_COMM, LOCAL_LEADER, PEER_COMM, REMOTE_LEADER\fP
+	INTEGER	\fITAG, NEWINTERCOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Intercomm Intracomm::Create_intercomm(int \fIlocal_leader\fP, const 
+	Comm& \fIpeer_comm\fP, int \fIremote_leader\fP, int \fItag\fP) const
+
+.SH INPUT PARAMTERS
+.ft R
+.TP 1i
+local_comm
+The communicator containing the process that initiates the inter-communication (handle).
+.TP 1i
+local_leader
+Rank of local group leader in local_comm (integer).
+.TP 1i
+peer_comm
+"Peer" communicator; significant only at the local_leader (handle).
+.TP 1i
+remote_leader
+Rank of remote group leader in peer_comm; significant only at the local_leader (integer).
+.TP 1i
+tag
+Message tag used to identify new intercommunicator (integer). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newintercomm
+Created intercommunicator (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This call creates an intercommunicator. It is collective over the union of the local and remote groups. Processes should provide identical local_comm and local_leader arguments within each group. Wildcards are not permitted for remote_leader, local_leader, and tag.
+.sp
+This call uses point-to-point communication with communicator peer_comm,
+and with tag tag between the leaders. Thus, care must be taken that there be no pending communication on peer_comm that could interfere with this communication.
+
+If multiple MPI_Intercomm_creates are being made, they should use different tags (more precisely, they should ensure that the local and remote leaders are using different tags for each MPI_intercomm_create). 
+
+.SH NOTES
+We recommend using a dedicated peer communicator, such as a duplicate of MPI_COMM_WORLD, to avoid trouble with peer communicators.
+.sp
+The MPI 1.1 Standard contains two mutually exclusive comments on the
+input intracommunicators.  One says that their repective groups must be
+disjoint; the other that the leaders can be the same process.  After
+some discussion by the MPI Forum, it has been decided that the groups must
+be disjoint.  Note that the 
+.B reason
+given for this in the standard is
+.B not
+the reason for this choice; rather, the 
+.B other
+operations on
+intercommunicators (like 
+.I MPI_Intercomm_merge
+) do not make sense if the
+groups are not disjoint.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Intercomm_merge
+.br
+MPI_Comm_free
+.br
+MPI_Comm_remote_group
+.br
+MPI_Comm_remote_size
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_merge.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_merge.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Intercomm_merge.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Intercomm_merge 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Intercomm_merge\fP \- Creates an intracommunicator from an intercommunicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Intercomm_merge(MPI_Comm \fIintercomm\fP, int\fI high\fP, 
+     MPI_Comm\fI *newintracomm\fP
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_INTERCOMM_MERGE(\fIINTERCOMM, HIGH, NEWINTRACOMM, IERROR\fP)
+	INTEGER	\fIINTERCOMM, NEWINTRACOMM, IERROR\fP 
+	LOGICAL	\fIHIGH\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Intracomm Intercomm::Merge(bool \fIhigh\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+intercomm
+Intercommunicator (type indicator).
+.TP 1i
+high
+Used to order the groups of the two intracommunicators within comm when creating the new communicator (type indicator).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newintracomm
+Created intracommunicator (type indicator).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function creates an intracommunicator from the union of the two groups that are associated with intercomm. All processes should provide the same high value within each of the two groups. If processes in one group provide the value high = false and processes in the other group provide the value high = true, then the union orders the "low" group before the "high" group. If all processes provide the same high argument, then the order of the union is arbitrary. This call is blocking and collective within the union of the two groups. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Intercomm_create
+.br
+MPI_Comm_free
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Iprobe.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Iprobe.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Iprobe.3	(revision 97)
@@ -0,0 +1,85 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Iprobe 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Iprobe\fP \- Nonblocking test for a message.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Iprobe(int \fIsource\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, int\fI *flag\fP,
+	MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_IPROBE(\fISOURCE, TAG, COMM, FLAG, STATUS, IERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fISOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool Comm::Iprobe(int \fIsource\fP, int \fItag\fP, Status& \fIstatus\fP) const
+
+bool Comm::Iprobe(int \fIsource\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+source
+Source rank or MPI_ANY_SOURCE (integer).
+.TP 1i
+tag
+Tag value or MPI_ANY_TAG (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag
+Message-waiting flag (logical).
+.TP 1i
+status
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The MPI_Probe and MPI_Iprobe operations allow checking of incoming messages without actual receipt of them. The user can then decide how to receive them, based on the information returned by the probe (basically, the information returned by status). In particular, the user may allocate memory for the receive buffer, according to the length of the probed message. 
+.sp
+MPI_Iprobe(source, tag, comm, flag, status) returns flag = true if there is a message that can be received and that matches the pattern specified by the arguments source, tag, and comm. The call matches the same message that would have been received by a call to MPI_Recv(\&..., source, tag, comm, status) executed at the same point in the program, and returns in status the same value that would have been returned by MPI_Recv(). Otherwise, the call returns flag = false, and leaves status undefined. 
+.sp
+If MPI_Iprobe returns flag = true, then the content of the status object can be subsequently accessed as described in Section 3.2.5 of the MPI-1 Standard, "Return Status," to find the source, tag, and length of the probed message.
+.sp
+A subsequent receive executed with the same context, and the source and tag returned in status by MPI_Iprobe will receive the message that was matched by the probe if no other intervening receive occurs after the probe. If the receiving process is multithreaded, it is the user's responsibility to ensure that the last condition holds.
+.sp
+The source argument of MPI_Probe can be MPI_ANY_SOURCE, and the tag argument can be MPI_ANY_TAG, so that one can probe for messages from an arbitrary source and/or with an arbitrary tag. However, a specific communication context must be provided with the comm argument.
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+.sp
+It is not necessary to receive a message immediately after it has been probed for, and the same message may be probed for several times before it is received. 
+.sp
+.SH NOTE
+Users of libmpi-mt should remember that two threads may do an MPI_Iprobe that actually returns true for the same message for both threads. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Probe
+.br
+MPI_Cancel
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irecv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irecv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irecv.3	(revision 97)
@@ -0,0 +1,82 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Irecv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Irecv\fP \- Starts a standard-mode, nonblocking receive.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Irecv(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, 
+        int\fI source\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_IRECV(\fIBUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST,
+		IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Request Comm::Irecv(void* \fIbuf\fP, int \fIcount\fP, const Datatype& 
+	\fIdatatype\fP, int \fIsource\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of receive buffer (choice).
+.TP 1i
+count
+Number of elements in receive buffer (integer).
+.TP 1i
+datatype
+Datatype of each receive buffer element (handle).
+.TP 1i
+source
+Rank of source (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Nonblocking calls allocate a communication request object and associate it with the request handle (the argument request). The request can be used later to query the status of the communication or wait for its completion. 
+.sp
+A nonblocking receive call indicates that the system may start writing data into the receive buffer. The receiver should not access any part of the receive buffer after a nonblocking receive operation is called, until the receive completes. 
+.sp
+A receive request can be determined being completed by calling the MPI_Wait, MPI_Waitany, MPI_Test, or MPI_Testany with request returned by this function.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Recv
+MPI_Probe
+MPI_Test
+MPI_Testany
+MPI_Wait
+MPI_Waitany
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irsend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irsend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Irsend.3	(revision 97)
@@ -0,0 +1,72 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Irsend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Irsend\fP \- Starts a ready-mode nonblocking send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Irsend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_IRSEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Request Comm::Irsend(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Irsend starts a ready-mode nonblocking send. Nonblocking calls allocate a communication request object and associate it with the request handle (the argument request). The request can be used later to query the status of the communication or to wait for its completion. 
+.sp
+A nonblocking send call indicates that the system may start copying data out of the send buffer. The sender should not access any part of the send buffer after a nonblocking send operation is called, until the send completes. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Rsend
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Is_thread_main.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Is_thread_main.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Is_thread_main.3	(revision 97)
@@ -0,0 +1,64 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Is_thread_main 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Is_thread_main\fP \- Determines if thread called MPI_Init
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Is_thread_main(int *\fIflag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_IS_THREAD_MAIN(\fIFLAG, IERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fIIERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Is_thread_main()
+
+.SH OUTPUT PARAMETERS
+.TP 1i
+flag
+True if calling thread is main thread (boolean).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Is_thread_main is called by a thread to find out whether the
+caller is the main thread (that is, the thread that called MPI_Init or
+MPI_Init_thread).
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Init
+MPI_Init_thread
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Isend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Isend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Isend.3	(revision 97)
@@ -0,0 +1,80 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Isend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Isend\fP \- Starts a standard-mode, nonblocking send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Isend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ISEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Request Comm::Isend(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Isend starts a standard-mode, nonblocking send. Nonblocking calls allocate a communication request object and associate it with the request handle (the argument request). The request can be used later to query the status of the communication or wait for its completion. 
+.sp
+A nonblocking send call indicates that the system may start copying data out of the send buffer. The sender should not access any part of the send buffer after a nonblocking send operation is called, until the send completes. 
+.sp
+A send request can be determined being completed by calling the MPI_Wait, MPI_Waitany, MPI_Test, or MPI_Testany with request returned by this function.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Send
+MPI_Wait
+MPI_Waitany
+MPI_Test
+MPI_Testany
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Issend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Issend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Issend.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Issend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Issend\fP \- Starts a nonblocking synchronous send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Issend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_ISSEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Request Comm::Issend(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Starts a synchronous mode, nonblocking send.
+.sp
+Nonblocking calls allocate a communication request object and associate it with the request handle (the argument request). The request can be used later to query the status of the communication or wait for its completion. 
+.sp
+A nonblocking send call indicates that the system may start copying data out of the send buffer. The sender should not access any part of the send buffer after a nonblocking send operation is called, until the send completes. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Ssend
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_create.3	(revision 97)
@@ -0,0 +1,114 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Keyval_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Keyval_create\fP \- Generates a new attribute key -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Keyval_create(MPI_Copy_function *\fIcopy_fn\fP,
+	MPI_Delete_function *\fIdelete_fn\fP, int *\fIkeyval\fP, void *\fIextra_state\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_KEYVAL_CREATE(\fICOPY_FN, DELETE_FN, KEYVAL, EXTRA_STATE, IERROR\fP)
+	EXTERNAL	\fICOPY_FN, DELETE_FN\fP
+	INTEGER	\fIKEYVAL, EXTRA_STATE, IERROR\fP
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+copy_fn
+Copy callback function for keyval.
+.TP 1i
+delete_fn
+Delete callback function for keyval.
+.TP 1i
+extra_state
+Extra state for callback functions.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+keyval
+Key value for future access (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_create_keyval instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Generates a new attribute key. Keys are locally unique in a process and opaque to the user, though they are explicitly stored in integers. Once allocated, the key value can be used to associate attributes and access them on any locally defined communicator.
+.sp
+The copy_fn function is invoked when a communicator is duplicated by MPI_COMM_DUP. copy_fn should be of type MPI_Copy_function, which is defined as follows: 
+.sp
+.nf
+  typedef int MPI_Copy_function(MPI_Comm oldcomm, int keyval, 
+                                void *extra_state, void *attribute_val_in, 
+                                void *attribute_val_out, int *flag)
+
+.fi
+A Fortran declaration for such a function is as follows: 
+.sp
+.nf
+  SUBROUTINE COPY_FUNCTION(OLDCOMM, KEYVAL, EXTRA_STATE, ATTRIBUTE_VAL_IN,
+              ATTRIBUTE_VAL_OUT, FLAG, IERR)
+  INTEGER OLDCOMM, KEYVAL, EXTRA_STATE,
+  ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, IERR 
+  LOGICAL FLAG 
+.fi
+.sp
+The copy callback function is invoked for each key value in oldcomm in arbitrary order. Each call to the copy callback is made with a key value and its corresponding attribute. If it returns flag = 0, then the attribute is deleted in the duplicated communicator. Otherwise ( flag = 1), the new attribute value is set to the value returned in attribute_val_out. The function returns MPI_SUCCESS on success and an error code on failure (in which case MPI_Comm_dup will fail). 
+.sp
+copy_fn may be specified as MPI_NULL_COPY_FN or MPI_DUP_FN from either C or
+Fortran; MPI_NULL_COPY_FN is a function that does nothing other than return flag = 0, and MPI_SUCCESS. MPI_DUP_FN is a simple-minded copy function that sets flag = 1, returns the value of attribute_val_in in attribute_val_out, and returns MPI_SUCCESS. 
+
+.SH NOTES
+Key values are global (available for any and all communicators).
+.sp
+There are subtle differences between C and Fortran that require that the copy_fn be written in the same language that MPI_Keyval_create is called from. This should not be a problem for most users; only programers using both Fortran and C in the same program need to be sure that they follow this rule. 
+.sp
+Even though both formal arguments attribute_val_in
+and attribute_val_out are of type void*, their usage differs. The C copy function is passed by MPI in attribute_val_in the value of the attribute, and in attribute_val_out the address of the attribute, so as to allow the function to return the (new) attribute value. The use of type void* for both is to avoid messy type casts.  
+.sp
+A valid copy function is one that completely duplicates the information by making a full duplicate copy of the data structures implied by an attribute; another might just make another reference to that data structure, while using a reference-count mechanism. Other types of attributes might not copy at all (they might be specific to oldcomm only). 
+.sp
+Analogous to copy_fn is a callback deletion function, defined as follows. The delete_fn function is invoked when a communicator is deleted by MPI_Comm_free or when a call is made explicitly to MPI_Attr_delete. delete_fn should be of type MPI_Delete_function, which is defined as follows: 
+.sp
+.nf
+  typedef int MPI_Delete_function(MPI_Comm comm, int keyval, 
+      void *attribute_val, void *extra_state); 
+.fi
+.sp
+A Fortran declaration for such a function is as follows: 
+.sp
+.nf
+  SUBROUTINE DELETE_FUNCTION(COMM, KEYVAL,ATTRIBUTE_VAL, EXTRA_STATE, IERR)
+      INTEGER COMM, KEYVAL, ATTRIBUTE_VAL, EXTRA_STATE, IERR 
+.fi
+.sp
+This function is called by MPI_Comm_free, MPI_Attr_delete, and MPI_Attr_put to do whatever is needed to remove an attribute. The function returns MPI_SUCCESS on success and an error code on failure (in which case MPI_COMM_FREE will fail). 
+.sp
+delete_fn may be specified as MPI_NULL_DELETE_FN from either C or FORTRAN; MPI_NULL_DELETE_FN is a function that does nothing, other than returning MPI_SUCCESS.  
+.sp
+The special key value MPI_KEYVAL_INVALID is never returned by MPI_Keyval_create. Therefore, it can be used for static initialization of key values. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Keyval_free
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Keyval_free.3	(revision 97)
@@ -0,0 +1,58 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Keyval_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Keyval_free\fP \- Frees attribute key for communicator cache attribute -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Keyval_free(int *\fIkeyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_KEYVAL_FREE(\fIKEYVAL, IERROR\fP)
+	INTEGER	\fIKEYVAL, IERROR\fP 
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+keyval
+Frees the integer key value (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Comm_free_keyval instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+Frees an extant attribute key. This function sets the value of keyval to  MPI_KEYVAL_INVALID. Note that it is not erroneous to free an attribute key that is in use, because the actual free does not transpire until after all references (in other communicators on the process) to the key have been freed. These references need to be explictly freed by the program, either via calls to MPI_Attr_delete that free one attribute instance, or by calls to MPI_Comm_free that free all attribute instances associated with the freed communicator. 
+
+.SH NOTE
+.ft R
+Key values are global (they can be used with any and all communicators). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Keyval_create
+.br
+
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Lookup_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Lookup_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Lookup_name.3	(revision 97)
@@ -0,0 +1,123 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Lookup_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Lookup_name\fP \- Finds port associated with a service name
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Lookup_name(char *\fIservice_name\fP, MPI_Info \fIinfo\fP,
+	char *\fIport_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_LOOKUP_NAME(\fISERVICE_NAME, INFO, PORT_NAME, IERROR\fP)
+	CHARACTER*(*)	\fISERVICE_NAME, PORT_NAME\fP
+	INTEGER		\fIINFO, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Lookup_name(const char *\fIservice_name\fP, const MPI::Info& \fIinfo\fP,
+	char* \fIport_name\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+service_name
+A service name (string).
+.TP 1.4i
+info
+Options to the name service functions (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1.4i
+port_name
+a port name (string).
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function retrieves a \fIport_name\fP published under
+\fIservice_name\fP by a previous invocation of MPI_Publish_name. The
+application must supply a \fIport_name\fP buffer large enough to hold
+the largest possible port name (i.e., MPI_MAX_PORT_NAME bytes).
+
+.SH INFO ARGUMENTS
+The following keys for \fIinfo\fP are recognized:
+.sp
+.sp
+.nf
+Key                   Type      Description
+---                   ----      -----------
+
+ompi_lookup_order     char *    Resolution order for name lookup.
+.fi
+
+The \fIompi_lookup_order\fP info key can specify one of four valid
+string values (see the NAME SCOPE section below for more information
+on name scopes):
+
+.TP 4
+\fIlocal\fP: Only search the local scope for name resolution.
+.TP 4
+\fIglobal\fP: Only search the global scope for name resolution.
+.TP 4
+\fIlocal,global\fP: Search the local scope for name resolution.  If
+not found, try searching the global scope for name resolution.  This
+behavior is the default if the \fIompi_lookup_order\fP info key is not
+specified.
+.TP 4
+\fIglobal,local\fP: Search the global scope for name resolution.  If
+not found, try searching the local scope for name resolution.
+.PP
+If no info key is provided, the search will first check to see if a
+global server has been specified and is available. If so, then the
+search will default to global scope first, followed by local. Otherwise,
+the search will default to local.
+
+.SH NAME SCOPE
+Open MPI supports two name scopes: \fIglobal\fP and \fIlocal\fP. Local scope
+values are placed in a data store located on the mpirun of the calling
+process' job, while global scope values reside on a central server. Calls
+to MPI_Unpublish_name must correctly specify the scope to be used in
+finding the value to be removed. The function will return an error if
+the specified service name is not found on the indicated location.
+.sp
+For a more detailed description of scoping rules, please see the MPI_Publish_name
+man page.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Publish_name
+MPI_Open_port
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_create.3	(revision 97)
@@ -0,0 +1,178 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Op_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Op_create\fP \- Creates a user-defined combination function handle.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Op_create(MPI_User_function *\fIfunction\fP, int\fI commute\fP,
+	MPI_Op *\fIop\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_OP_CREATE(\fIFUNCTION, COMMUTE, OP, IERROR\fP)
+	EXTERNAL	\fIFUNCTION\fP
+	LOGICAL	\fICOMMUTE\fP
+	INTEGER	\fIOP, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Op::Init(User function* \fIfunction\fP, bool \fIcommute\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+function
+User-defined function (function).
+.TP 1i
+commute
+True if commutative; false otherwise.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+op
+Operation (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Op_create binds a user-defined global operation to an op handle that can subsequently be used in MPI_Reduce, MPI_Allreduce, MPI_Reduce_scatter, and  MPI_Scan. The user-defined operation is assumed to be associative. If commute = true, then the operation should be both commutative and associative. If commute = false, then the order of operands is fixed and is defined to be in ascending, process rank order, beginning with process zero. The order of evaluation can be changed, taking advantage of the associativity of the operation. If commute = true then the order of evaluation can be changed, taking advantage of commutativity and associativity.
+.sp
+\fIfunction\fP is the user-defined function, which must have the following four arguments: invec, inoutvec, len, and datatype. 
+
+.sp
+The ANSI-C prototype for the function is the following:
+.sp
+.nf
+  typedef void MPI_User_function(void *invec, void *inoutvec,
+                                 int *len, 
+                                 MPI_Datatype *datatype);
+.fi
+.sp
+The Fortran declaration of the user-defined function appears below.
+.sp
+.nf
+  FUNCTION USER_FUNCTION( INVEC(*), INOUTVEC(*), LEN, TYPE) 
+  <type> INVEC(LEN), INOUTVEC(LEN) 
+   INTEGER LEN, TYPE 
+.fi
+.sp
+The datatype argument is a handle to the data type that was passed into the
+call to MPI_Reduce. The user reduce function should be written such that
+the following holds: Let u[0],\ ...,\ u[len-1] be the len elements in the communication buffer described by the arguments invec, len, and datatype when the function is invoked; let v[0],\ ...,\ v[len-1] be len elements in the communication buffer described by the arguments inoutvec, len, and datatype when the function is invoked; let w[0],\ ...,\ w[len-1] be len elements in the communication buffer described by the arguments inoutvec, len, and datatype when the function returns; then w[i] = u[i] o v[i], for i=0\ ,...,\ len-1, where o is the reduce operation that the function computes.
+.sp
+Informally, we can think of invec and inoutvec as arrays of len elements
+that function is combining. The result of the reduction over-writes values
+in inoutvec, hence the name. Each invocation of the function results in the
+pointwise evaluation of the reduce operator on len elements: i.e, the
+function returns in inoutvec[i] the value invec[i] o inoutvec[i], for i =
+0\,...,\ count-1, where o is the combining operation computed by the function.
+.sp
+By internally comparing the value of the datatype argument to known, global handles, it is possible to overload the use of a single user-defined function for several different data types. 
+.sp
+General datatypes may be passed to the user function. However, use of datatypes that are not contiguous is likely to lead to inefficiencies.  
+.sp
+No MPI communication function may be called inside the user function.
+MPI_Abort may be called inside the function in case of an error. 
+
+.SH NOTES
+Suppose one defines a library of user-defined reduce
+functions that are overloaded: The datatype argument is used to select the right execution path at each invocation, according to the types of the operands. The user-defined reduce function cannot "decode" the datatype argument that it is passed, and cannot identify, by itself, the correspondence between the datatype handles and the datatype they represent. This correspondence was established when the datatypes were created. Before the library is used, a library initialization preamble must be executed. This preamble code will define the datatypes that are used by the library and store handles to these datatypes in global, static variables that are shared by the user code and the library code.  
+
+\fBExample:\fP Example of user-defined reduce: 
+.sp
+Compute the product of an array of complex numbers, in C.
+.sp
+.nf
+    typedef struct { 
+        double real,imag; 
+    } Complex; 
+ 
+    /* the user-defined function 
+     */ 
+    void myProd( Complex *in, Complex *inout, int *len, 
+                 MPI_Datatype *dptr ) 
+    { 
+        int i; 
+        Complex c; 
+ 
+    for (i=0; i< *len; ++i) { 
+            c.real = inout->real*in->real - 
+                       inout->imag*in->imag; 
+            c.imag = inout->real*in->imag + 
+                       inout->imag*in->real; 
+            *inout = c; 
+            in++; inout++; 
+        } 
+    } 
+ 
+    /* and, to call it\&... 
+     */ 
+    \&...
+
+    /* each process has an array of 100 Complexes 
+         */ 
+        Complex a[100], answer[100]; 
+        MPI_Op myOp; 
+        MPI_Datatype ctype; 
+    
+    /* explain to MPI how type Complex is defined 
+         */ 
+       MPI_Type_contiguous( 2, MPI_DOUBLE, &ctype ); 
+        MPI_Type_commit( &ctype ); 
+        /* create the complex-product user-op 
+         */ 
+        MPI_Op_create( myProd, True, &myOp ); 
+     
+        MPI_Reduce( a, answer, 100, ctype, myOp, root, comm ); 
+     
+        /* At this point, the answer, which consists of 100 Complexes, 
+         * resides on process root 
+         */ 
+.fi
+.sp
+The Fortran version of MPI_Reduce will invoke a user-defined reduce function using the Fortran calling conventions and will pass a Fortran-type datatype argument; the C version will use C calling convention and the C representation of a datatype handle. Users who plan to mix languages should define their reduction functions accordingly.
+
+.SH NOTES ON COLLECTIVE OPERATIONS
+
+The reduction functions (
+.I MPI_Op
+) do not return an error value.  As a result,
+if the functions detect an error, all they can do is either call 
+.I MPI_Abort
+or silently skip the problem.  Thus, if you change the error handler from
+.I MPI_ERRORS_ARE_FATAL
+to something else, for example, 
+.I MPI_ERRORS_RETURN
+,
+then no error may be indicated.
+
+The reason for this is the performance problems in ensuring that
+all collective routines return the same error value.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Reduce
+MPI_Reduce_scatter
+MPI_Allreduce
+MPI_Scan
+MPI_Op_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Op_free.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Op_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Op_free\fP \- Frees a user-defined combination function handle.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Op_free(MPI_Op *\fIop\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_OP_FREE(\fIOP, IERROR\fP)
+	INTEGER	\fIOP, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Op::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.TP 1i
+op
+Operation (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Marks a user-defined reduction operation for deallocation and sets \fIop\fP to MPI_OP_NULL. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.sp
+MPI_Op_create
+.br
+MPI_Reduce
+.br
+MPI_Allreduce
+.br
+MPI_Reduce_scatter
+.br
+MPI_Scan
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Open_port.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Open_port.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Open_port.3	(revision 97)
@@ -0,0 +1,60 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Open_port 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Open_port\fP \- Establishes a network address for a server to accept connections from clients.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Open_port(MPI_Info \fIinfo\fP, char *\fIport_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_OPEN_PORT(\fIINFO, PORT_NAME, IERROR\fP)
+	CHARACTER*(*)	\fIPORT_NAME\fP
+	INTEGER		\fIINFO, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Open_port(const MPI::Info& \fIinfo\fP, char* \fIport_name\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+info
+Options on how to establish an address (handle). No options currently supported.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+port_name
+Newly established port (string).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Open_port establishes a network address, encoded in the \fIport_name\fP string, at which the server will be able to accept connections from clients. \fIport_name\fP is supplied by the system. 
+.sp
+MPI copies a system-supplied port name into \fIport_name\fP. \fIport_name\fP identifies the newly opened port and can be used by a client to contact the server. The maximum size string that may be supplied by the system is MPI_MAX_PORT_NAME.
+
+.SH SUPPORTED INFO KEYS
+None. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Comm_accept
+MPI_Comm_connect
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack.3	(revision 97)
@@ -0,0 +1,103 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Pack 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Pack\fP \- Packs data of a given datatype into contiguous memory.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Pack(void *\fIinbuf\fP, int\fI incount\fP, MPI_Datatype\fI datatype\fP,
+	void\fI *outbuf\fP, int\fI outsize\fP, int\fI *position\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PACK(\fIINBUF, INCOUNT, DATATYPE, OUTBUF,OUTSIZE, POSITION,
+		COMM, IERROR\fP)
+	<type>	\fIINBUF(*), OUTBUF(*)\fP
+	INTEGER	\fIINCOUNT, DATATYPE, OUTSIZE, POSITION, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Datatype::Pack(const void* \fIinbuf\fP, int \fIincount\fP, void *\fIoutbuf\fP, 
+	int \fIoutsize\fP, int& \fIposition\fP, const Comm &\fIcomm\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+inbuf
+Input buffer start (choice).
+.TP 1i
+incount
+Number of input data items (integer).
+.TP 1i
+datatype
+Datatype of each input data item (handle).
+.TP 1i
+outsize
+Output buffer size, in bytes (integer).
+.TP 1i
+comm
+Communicator for packed message (handle).
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+position
+Current position in buffer, in bytes (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outbuf
+Output buffer start (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Packs the message in the send buffer specified by \fIinbuf\fP, \fIincount\fP, \fIdatatype\fP into the buffer space specified by \fIoutbuf\fP and \fIoutsize\fP. The input buffer can be any communication buffer allowed in MPI_Send. The output buffer is a contiguous storage area containing \fIoutsize\fP bytes, starting at the address \fIoutbuf\fP (length is counted in bytes, not elements, as if it were a communication buffer for a message of type MPI_Packed).
+.sp
+The input value of \fIposition\fP is the first location in the output buffer to be used for packing. \fIposition\fP is incremented by the size of the packed message, and the output value of \fIposition\fP is the first location in the output buffer following the locations occupied by the packed message. The \fIcomm\fP argument is the communicator that will be subsequently used for sending the packed message.
+.sp
+\fBExample:\fP An example using MPI_Pack:
+.sp
+.nf
+    int position, i, j, a[2]; 
+    char buff[1000]; 
+     
+    \&.... 
+     
+    MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 
+    if (myrank == 0) 
+    { 
+       / * SENDER CODE */ 
+     
+    position = 0; 
+      MPI_Pack(&i, 1, MPI_INT, buff, 1000, &position, MPI_COMM_WORLD); 
+      MPI_Pack(&j, 1, MPI_INT, buff, 1000, &position, MPI_COMM_WORLD); 
+      MPI_Send( buff, position, MPI_PACKED, 1, 0, MPI_COMM_WORLD); 
+    } 
+    else  /* RECEIVER CODE */ 
+      MPI_Recv( a, 2, MPI_INT, 0, 0, MPI_COMM_WORLD) 
+     
+    }
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Unpack
+.br
+MPI_Pack_size
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external.3	(revision 97)
@@ -0,0 +1,192 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Pack_external 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Pack_external\fP \- Writes data to a portable format
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Pack_external(char *\fIdatarep\fP, void *\fIinbuf\fP,
+	int \fIincount\fP, MPI_Datatype\fI datatype\fP,
+	void *\fIoutbuf\fP, MPI_Aint \fIoutsize\fP, 
+	MPI_Aint *\fIposition\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PACK_EXTERNAL(\fIDATAREP, INBUF, INCOUNT, DATATYPE,
+	OUTBUF, OUTSIZE, POSITION, IERROR\fP)
+
+	INTEGER		\fIINCOUNT, DATATYPE, IERROR\fP
+	INTEGER (KIND=MPI_ADDRESS_KIND) \fIOUTSIZE, POSITION\fP
+	CHARACTER*(*)	\fIDATAREP\fP
+	<type>		\fIINBUF(*), OUTBUF(*)\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Pack_external(const char* \fIdatarep\fP,
+	const void* \fIinbuf\fP, int \fIincount\fP,
+	void* \fIoutbuf\fP, MPI::Aint \fIoutsize\fP, 
+	MPI::Aint& \fIposition\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datarep
+Data representation (string).
+.ft R
+.TP 1i
+inbuf
+Input buffer start (choice).
+.TP 1i
+incount
+Number of input data items (integer).
+.TP 1i
+datatype
+Datatype of each input data item (handle).
+.TP 1i
+outsize
+Output buffer size, in bytes (integer).
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+position
+Current position in buffer, in bytes (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outbuf
+Output buffer start (choice).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Pack_external packs data into the external32 format, a universal
+data representation defined by the MPI Forum. This format is useful
+for exchanging data between MPI implementations, or when writing data
+to a file.
+.sp
+The input buffer is specified by \fIinbuf\fP, \fIincount\fP and
+\fIdatatype\fP, and may be any communication buffer allowed in
+MPI_Send. The output buffer \fIoutbuf\fP must be a contiguous storage
+area containing \fIoutsize\fP bytes.
+.sp
+The input value of \fIposition\fP is the first position in
+\fIoutbuf\fP to be used for packing (measured in bytes, not elements,
+relative to the start of the buffer). When the function returns,
+\fIposition\fP is incremented by the size of the packed message, so
+that it points to the first location in \fIoutbuf\fP following the
+packed message. This way it may be used as input to a subsequent call
+to MPI_Pack_external.
+.sp
+
+\fBExample:\fP An example using MPI_Pack_external:
+.sp
+.nf
+	int position, i; 
+	double msg[5]; 
+	char buf[1000];
+
+	\&...
+
+	MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 
+	if (myrank == 0) {	/* SENDER CODE */ 
+		position = 0;
+		i = 5; /* number of doubles in msg[] */
+		MPI_Pack_external("external32", &i, 1, MPI_INT,
+		    buf, 1000, &position); 
+		MPI_Pack_external("external32", &msg, i, MPI_DOUBLE,
+		    buf, 1000, &position); 
+		MPI_Send(buf, position, MPI_PACKED, 1, 0,
+		    MPI_COMM_WORLD); 
+	} else {		/* RECEIVER CODE */ 
+		MPI_Recv(buf, 1, MPI_PACKED, 0, 0, MPI_COMM_WORLD,
+		    MPI_STATUS_IGNORE);
+		MPI_Unpack_external("external32", buf, 1000, 
+		    MPI_INT, &i, 1, &position);
+		MPI_Unpack_external("external32", buf, 1000, 
+		    MPI_DOUBLE, &msg, i, &position);
+	}	
+
+.SH NOTES
+.ft R
+The \fIdatarep\fP argument specifies the data format. The only valid
+value in the current version of MPI is "external32". The argument is
+provided for future extensibility.
+.sp
+To understand the behavior of pack and unpack, it is convenient to
+think of the data part of a message as being the sequence obtained by
+concatenating the successive values sent in that message. The pack
+operation stores this sequence in the buffer space, as if sending the
+message to that buffer. The unpack operation retrieves this sequence
+from buffer space, as if receiving a message from that buffer. (It is
+helpful to think of internal Fortran files or sscanf in C for a
+similar function.)
+.sp
+Several messages can be successively packed into one packing
+unit. This is effected by several successive related calls to
+MPI_Pack_external, where the first call provides \fIposition\fP=0,
+and each successive call inputs the value of \fIposition\fP that was
+output by the previous call, along with the same values for
+\fIoutbuf\fP and \fIoutcount\fP. This packing unit now contains the
+equivalent information that would have been stored in a message by one
+send call with a send buffer that is the "concatenation" of the
+individual send buffers.
+.sp
+A packing unit can be sent using type MPI_PACKED. Any point-to-point
+or collective communication function can be used to move the sequence
+of bytes that forms the packing unit from one process to another. This
+packing unit can now be received using any receive operation, with any
+datatype. (The type-matching rules are relaxed for messages sent with
+type MPI_PACKED.)
+.sp
+A packing unit can be unpacked into several successive messages. This
+is effected by several successive related calls to
+MPI_Unpack_external, where the first call provides \fIposition\fP=0,
+and each successive call inputs the value of position that was output
+by the previous call, and the same values for \fIinbuf\fP and
+\fIinsize\fP.
+.sp
+The concatenation of two packing units is not necessarily a packing
+unit; nor is a substring of a packing unit necessarily a packing
+unit. Thus, one cannot concatenate two packing units and then unpack
+the result as one packing unit; nor can one unpack a substring of a
+packing unit as a separate packing unit. Each packing unit that was
+created by a related sequence of pack calls must be unpacked as a unit
+by a sequence of related unpack calls.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external_size
+MPI_Send
+MPI_Unpack_external
+sscanf(3C)
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_external_size.3	(revision 97)
@@ -0,0 +1,96 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Pack_external_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Pack_external_size\fP \- Calculates upper bound on space needed
+to write to a portable format
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Pack_external_size(char *\fIdatarep\fP, int \fIincount\fP, 
+	MPI_Datatype \fIdatatype\fP, MPI_Aint *\fIsize\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PACK_EXTERNAL_SIZE(\fIDATAREP, INCOUNT, DATATYPE, SIZE, IERROR\fP)
+
+	INTEGER		\fIINCOUNT, DATATYPE, IERROR\fP 
+	INTEGER (KIND=MPI_ADDRESS_KIND) \fISIZE\fP
+	CHARACTER*(*)	\fIDATAREP\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Aint MPI::Datatype::Pack_external_size(const char* \fIdatarep\fP, 
+	int \fIincount\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datarep
+Data representation (string).
+.TP 1i
+incount
+Number of input data items (integer).
+.TP 1i
+datatype
+Datatype of each input data item (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Upper bound on size of packed message, in bytes (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Pack_external_size allows the application to find out how much
+space is needed to pack a message in the portable format defined by
+the MPI Forum. It returns in \fIsize\fP an upper bound on the
+increment in \fIposition\fP that would occur in a call to
+MPI_Pack_external with the same values for \fIdatarep\fP,
+\fIincount\fP, and \fIdatatype\fP.
+.sp
+The call returns an upper bound, rather than an exact bound, as the
+exact amount of space needed to pack the message may depend on context
+and alignment (e.g., the first message packed in a packing unit may
+take more space).
+
+.SH NOTES
+.ft R
+The \fIdatarep\fP argument specifies the data format. The only valid
+value in the current version of MPI is "external32". The argument is
+provided for future extensibility.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external
+MPI_Unpack_external
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pack_size.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Pack_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Pack_size\fP \- Returns the upper bound on the amount of space needed to pack a message.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Pack_size(int \fIincount\fP, MPI_Datatype\fI datatype\fP, MPI_Comm\fI comm\fP,
+	int\fI *size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PACK_SIZE(\fIINCOUNT, DATATYPE, COMM, SIZE, IERROR\fP)
+	INTEGER	\fIINCOUNT, DATATYPE, COMM, SIZE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Datatype::Pack_size(int \fIincount\fP, const Comm& \fIcomm\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+incount
+Count argument to packing call (integer).
+.TP 1i
+datatype
+Datatype argument to packing call (handle).
+.TP 1i
+comm
+Communicator argument to packing call (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Upper bound on size of packed message, in bytes (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Pack_size allows the application to find out how much space is needed to pack a message. A call to MPI_Pack_size(incount, datatype, comm, size) returns in size an
+upper bound on the increment in position that would occur in a call to MPI_Pack, with the same values for \fIincount\fP, \fIdatatype\fP, and \fIcomm\fP. 
+.sp
+\fBRationale:\fP  The call returns an upper bound, rather than an exact bound, since the exact amount of space needed to pack the message may depend on the context (e.g., first message packed in a packing unit may take more space). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Pack
+.br
+MPI_Unpack
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pcontrol.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pcontrol.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Pcontrol.3	(revision 97)
@@ -0,0 +1,63 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Pcontrol 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Pcontrol\fP \- Controls profiling.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Pcontrol(const int \fIlevel\fP, \&... )
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PCONTROL(\fILEVEL\fP)
+	INTEGER	\fILEVEL\fP, \&...
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Pcontrol(const int \fIlevel\fP, \...)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+level
+Profiling level.
+
+.SH DESCRIPTION
+.ft R
+MPI libraries themselves make no use of this routine; they simply return immediately to the user code. However the presence of calls to this routine allows a profiling package to be explicitly called by the user.  
+.sp
+Since MPI has no control of the implementation of the profiling code, we are unable to specify precisely the semantics that will be provided by calls to MPI_Pcontrol. This vagueness extends to the number of arguments to the function, and their datatypes. 
+.sp
+However to provide some level of portability of user codes to different
+profiling libraries, we request the following meanings for certain values of level:
+.TP
+  o
+level==0	Profiling is disabled.
+.TP
+  o
+level==1	Profiling is enabled at a normal default level of detail.
+.TP
+  o
+level==2	Profile buffers are flushed. (This may be a no-op in some
+profilers).
+.TP
+  o
+All other values of level have profile library-defined effects and additional arguments.  
+.LP
+.sp
+We also request that the default state after MPI_Init has been called is for profiling to be enabled at the normal default level (i.e., as if MPI_Pcontrol had just been called with the argument 1). This allows users to link with a profiling library and obtain profile output without having to modify their source code at all.
+.sp
+The provision of MPI_Pcontrol as a no-op in the standard MPI library allows users to modify their source code to obtain more detailed profiling information, but still be able to link exactly the same code against the standard MPI library. 
+
+.SH NOTES
+.ft R
+This routine provides a common interface for profiling control. The interpretation of level and any other arguments is left to the profiling library. 
+.sp
+This function does not return an error value. Consequently, the result of calling it before MPI_Init or after MPI_Finalize is undefined.
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Probe.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Probe.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Probe.3	(revision 97)
@@ -0,0 +1,119 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Probe 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Probe\fP \- Blocking test for a message.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Probe(int \fIsource\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PROBE(\fISOURCE, TAG, COMM, STATUS, IERROR\fP)
+	INTEGER	\fISOURCE, TAG, COMM, STATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Probe(int \fIsource\fP, int \fItag\fP, Status& \fIstatus\fP) const
+
+void Comm::Probe(int \fIsource\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+source
+Source rank or MPI_ANY_SOURCE (integer).
+.TP 1i
+tag
+Tag value or MPI_ANY_TAG (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The MPI_Probe and MPI_Iprobe operations allow checking of incoming messages, without actual receipt of them. The user can then decide how to receive them, based on the information returned by the probe in the status variable. For example, the user may allocate memory for the receive buffer, according to the length of the probed message. 
+.sp
+MPI_Probe behaves like MPI_Iprobe except that it is a blocking call that returns only after a matching message has been found.
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+.sp
+The semantics of MPI_Probe and MPI_Iprobe guarantee progress: If a call to MPI_Probe has been issued by a process, and a send that matches the probe has been initiated by some process, then the call to MPI_Probe will return, unless the message is received by another concurrent receive operation (that is executed by another thread at the probing process). Similarly, if a process busy waits with MPI_Iprobe and a matching message has been issued, then the call to MPI_Iprobe will eventually return flag = true unless the message is received by another concurrent receive operation. 
+.sp
+\fBExample 1:\fP Use blocking probe to wait for an incoming message. 
+.sp
+.nf
+CALL MPI_COMM_RANK(comm, rank, ierr) 
+       IF (rank.EQ.0) THEN 
+            CALL MPI_SEND(i, 1, MPI_INTEGER, 2, 0, comm, ierr) 
+       ELSE IF(rank.EQ.1) THEN 
+            CALL MPI_SEND(x, 1, MPI_REAL, 2, 0, comm, ierr) 
+       ELSE   ! rank.EQ.2 
+           DO i=1, 2 
+              CALL MPI_PROBE(MPI_ANY_SOURCE, 0, 
+                              comm, status, ierr) 
+              IF (status(MPI_SOURCE) = 0) THEN 
+100                CALL MPI_RECV(i, 1, MPI_INTEGER, 0, 0, status, ierr) 
+              ELSE 
+200                CALL MPI_RECV(x, 1, MPI_REAL, 1, 0, status, ierr) 
+              END IF 
+           END DO 
+       END IF 
+.fi
+.sp
+Each message is received with the right type.
+.sp
+\fBExample 2:\fP A program similar to the previous example, but with a problem. 
+.sp
+.nf
+CALL MPI_COMM_RANK(comm, rank, ierr) 
+       IF (rank.EQ.0) THEN 
+            CALL MPI_SEND(i, 1, MPI_INTEGER, 2, 0, comm, ierr) 
+       ELSE IF(rank.EQ.1) THEN 
+            CALL MPI_SEND(x, 1, MPI_REAL, 2, 0, comm, ierr) 
+       ELSE 
+           DO i=1, 2 
+              CALL MPI_PROBE(MPI_ANY_SOURCE, 0, 
+                              comm, status, ierr) 
+              IF (status(MPI_SOURCE) = 0) THEN 
+100                CALL MPI_RECV(i, 1, MPI_INTEGER, MPI_ANY_SOURCE, 
+                                 0, status, ierr) 
+              ELSE 
+200                CALL MPI_RECV(x, 1, MPI_REAL, MPI_ANY_SOURCE, 
+                                 0, status, ierr) 
+              END IF 
+           END DO 
+       END IF
+.fi
+.sp
+We slightly modified Example 2, using MPI_ANY_SOURCE as the source argument in the two receive calls in statements labeled 100 and 200. The program is now incorrect: The receive operation may receive a message that is distinct from the message probed by the preceding call to MPI_Probe. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Iprobe
+.br
+MPI_Cancel
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Publish_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Publish_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Publish_name.3	(revision 97)
@@ -0,0 +1,153 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Publish_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Publish_name\fP \- Publishes a service name associated with a port
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Publish_name(char *\fIservice_name\fP, MPI_Info \fIinfo\fP,
+	char *\fIport_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_PUBLISH_NAME(\fISERVICE_NAME, INFO, PORT_NAME, IERROR\fP)
+	CHARACTER*(*)	\fISERVICE_NAME, PORT_NAME\fP
+	INTEGER		\fIINFO, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Publish_name(const char* \fIservice_name\fP, const MPI::Info& \fIinfo\fP,
+	const char* \fIport_name\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+service_name
+A service name (string).
+.TP 1.4i
+info
+Options to the name service functions (handle).
+.ft R
+.TP 1.4i
+port_name
+A port name (string).
+
+.SH OUTPUT PARAMETER
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer).
+
+.SH DESCRIPTION
+.ft R
+This routine publishes the pair (\fIservice_name, port_name\fP) so that
+an application may retrieve \fIport_name\fP by calling MPI_Lookup_name
+with \fIservice_name\fP as an argument. It is an error to publish the same
+\fIservice_name\fP twice, or to use a \fIport_name\fP argument that was
+not previously opened by the calling process via a call to MPI_Open_port.
+
+.SH INFO ARGUMENTS
+The following keys for \fIinfo\fP are recognized:
+.sp
+.sp
+.nf
+Key                   Type      Description
+---                   ----      -----------
+
+ompi_global_scope     bool      If set to true, publish the name in
+                                the global scope.  Publish in the local
+                                scope otherwise.  See the NAME SCOPE
+                                section for more details.
+.fi
+
+.sp 
+\fIbool\fP info keys are actually strings but are evaluated as
+follows: if the string value is a number, it is converted to an
+integer and cast to a boolean (meaning that zero integers are false
+and non-zero values are true).  If the string value is
+(case-insensitive) "yes" or "true", the boolean is true.  If the
+string value is (case-insensitive) "no" or "false", the boolean is
+false.  All other string values are unrecognized, and therefore false.
+.PP
+If no info key is provided, the function will first check to see if a
+global server has been specified and is available. If so, then the
+publish function will default to global scope first, followed by local. Otherwise,
+the data will default to publish with local scope.
+
+.SH NAME SCOPE
+Open MPI supports two name scopes: \fIglobal\fP and \fIlocal\fP. Local scope will
+place the specified service/port pair in a data store located on the
+mpirun of the calling process' job. Thus, data published with local
+scope will only be accessible to processes in jobs spawned by that
+mpirun - e.g., processes in the calling process' job, or in jobs
+spawned via MPI_Comm_spawn.
+.sp
+Global scope places the specified service/port pair in a data store
+located on a central server that is accessible to all jobs running
+in the cluster or environment. Thus, data published with global
+scope can be accessed by multiple mpiruns and used for MPI_Comm_Connect
+and MPI_Comm_accept between jobs.
+.sp
+Note that global scope operations require both the presence of the
+central server and that the calling process be able to communicate
+to that server. MPI_Publish_name will return an error if global
+scope is specified and a global server is either not specified or
+cannot be found.
+.sp
+Open MPI provides a server called \fIompi-server\fP to support global
+scope operations. Please refer to its manual page for a more detailed
+description of data store/lookup operations.
+.sp
+As an example of the impact of these scoping rules, consider the case
+where a job has been started with
+mpirun - call this job "job1". A process in job1 creates and publishes
+a service/port pair using a local scope. Open MPI will store this
+data in the data store within mpirun.
+.sp
+A process in job1 (perhaps the same as did the publish, or perhaps
+some other process in the job) subsequently calls MPI_Comm_spawn to
+start another job (call it "job2") under this mpirun. Since the two
+jobs share a common mpirun, both jobs have access to local scope data. Hence,
+a process in job2 can perform an MPI_Lookup_name with a local scope
+to retrieve the information.
+.sp
+However, assume another user starts a job using mpirun - call
+this job "job3". Because the service/port data published by job1 specified
+local scope, processes in job3 cannot access that data. In contrast, if the
+data had been published using global scope, then any process in job3 could
+access the data, provided that mpirun was given knowledge of how to contact
+the central server and the process could establish communication
+with it. 
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Lookup_name
+MPI_Open_port
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Put.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Put.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Put.3	(revision 97)
@@ -0,0 +1,109 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Put 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Put\fP \- Copies data from the origin memory to the target. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Put(void *\fIorigin_addr\fP, int \fIorigin_count\fP, MPI_Datatype 
+	\fIorigin_datatype\fP, int \fItarget_rank\fP, MPI_Aint \fItarget_disp\fP, 
+	int \fItarget_count\fP, MPI_Datatype \fItarget_datatype\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_PUT(\fIORIGIN_ADDR, ORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, 
+	TARGET_DISP, TARGET_COUNT, TARGET_DATATYPE, WIN, IERROR\fP)
+	<type> \fIORIGIN_ADDR\fP(*)
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fITARGET_DISP\fP
+	INTEGER \fIORIGIN_COUNT, ORIGIN_DATATYPE, TARGET_RANK, TARGET_COUNT, 
+	TARGET_DATATYPE, WIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Put(const void* \fIorigin_addr\fP, int \fIorigin_count\fP, const 
+	MPI::Datatype& \fIorigin_datatype\fP, int \fItarget_rank\fP, MPI::Aint 
+	\fItarget_disp\fP, int \fItarget_count\fP, const MPI::Datatype& 
+	\fItarget_datatype\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+origin_addr
+Initial address of origin buffer (choice).
+.TP 1i
+origin_count
+Number of entries in origin buffer (nonnegative integer).
+.TP 1i
+origin_datatype
+Data type of each entry in origin buffer (handle).
+.TP 1i
+target_rank
+Rank of target (nonnegative integer).
+.TP 1i
+target_disp
+Displacement from start of window to target buffer (nonnegative integer).
+.TP 1i
+target_count
+Number of entries in target buffer (nonnegative integer).
+.TP 1i
+target_datatype
+Data type of each entry in target buffer (handle).
+.TP 1i
+win
+Window object used for communication (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Put transfers \fIorigin_count\fP successive entries of the type specified by \fIorigin_datatype\fP, starting at address \fIorigin_addr\fP on the origin node to the target node specified by the \fIwin\fP, \fItarget_rank\fP pair. The data are written in the target buffer at address \fItarget_addr\fP = \fIwindow_base\fP + \fItarget_disp\fP x \fIdisp_unit\fP, where \fIwindow_base\fP and \fIdisp_unit\fP are the base address and window displacement unit specified at window initialization, by the target process.
+.sp
+The target buffer is specified by the arguments \fItarget_count\fP and \fItarget_datatype\fP.
+.sp
+The data transfer is the same as that which would occur if the origin process executed a send operation with arguments \fIorigin_addr\fP, \fIorigin_count\fP, \fIorigin_datatype\fP, \fItarget_rank\fP, \fItag\fP, \fIcomm\fP, and the target process executed a receive operation with arguments \fItarget_addr\fP, \fItarget_count\fP, \fItarget_datatype\fP, \fIsource\fP, \fItag\fP, \fIcomm\fP, where \fItarget_addr\fP is the target buffer address computed as explained above, and \fIcomm\fP is a communicator for the group of \fIwin\fP.
+.sp
+The communication must satisfy the same constraints as for a similar message-passing communication. The \fItarget_datatype\fP may not specify overlapping entries in the target buffer. The message sent must fit, without truncation, in the target buffer. Furthermore, the target buffer must fit in the target window. In addition, only processes within the same buffer can access the target window.
+.sp
+The \fItarget_datatype\fP argument is a handle to a datatype object defined at the origin process. However, this object is interpreted at the target process: The outcome is as if the target datatype object were defined at the target process, by the same sequence of calls used to define it at the origin process. The target data type must contain only relative displacements, not absolute addresses. The same holds for get and accumulate.
+
+.SH NOTES
+The \fItarget_datatype\fP argument is a handle to a datatype object that is defined at the origin process, even though it defines a data layout in the target process memory. This does not cause problems in a homogeneous or heterogeneous environment, as long as only portable data types are used (portable data types are defined in Section 2.4 of the MPI-2 Standard).
+.sp
+The performance of a put transfer can be significantly affected, on some systems, from the choice of window location and the shape and location of the origin and target buffer: Transfers to a target window in memory allocated by MPI_Alloc_mem may be much faster on shared memory systems; transfers from contiguous buffers will be faster on most, if not all, systems; the alignment of the communication buffers may also impact performance.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fITARGET_DISP\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fITARGET_DISP\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Get
+.br
+MPI_Accumulate
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Query_thread.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Query_thread.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Query_thread.3	(revision 97)
@@ -0,0 +1,88 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Query_thread 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Query_thread\fP \- Returns the current level of thread support
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Query_thread(int *\fIprovided\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_QUERY_THREAD(\fIPROVIDED, IERROR\fP)
+	INTEGER	\fIPROVIDED, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int MPI::Query_thread()
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+provided
+C/Fortran only: Level of thread support (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This routine returns in \fIprovided\fP the current level of thread
+support. If MPI was initialized by a call to MPI_Init_thread,
+\fIprovided\fP will have the same value as was returned by that
+function.
+.sp
+The possible values of \fIprovided\fP are as follows:
+.TP 2.4i
+MPI_THREAD_SINGLE
+Only one thread may execute.
+.TP 2.4i
+MPI_THREAD_FUNNELED
+If the process is multithreaded, only the thread
+that called MPI_Init[_thread] may make MPI calls.
+.TP 2.4i
+MPI_THREAD_SERIALIZED
+If the process is multithreaded, only one thread
+may make MPI library calls at one time.
+.TP 2.4i
+MPI_THREAD_MULTIPLE
+If the process is multithreaded, multiple threads
+may call MPI at once with no restrictions.
+
+.SH NOTES
+.ft R
+In Open MPI, \fIprovided\fP is always MPI_THREAD_SINGLE, unless the
+program has been linked with the multithreaded library, in which case
+\fIprovided\fP is MPI_THREAD_MULTIPLE.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Init
+MPI_Init_thread
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv.3	(revision 97)
@@ -0,0 +1,106 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Recv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Recv\fP \- Performs a standard-mode blocking receive.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Recv(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, 
+	int\fI source\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_RECV(\fIBUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR\fP)
+	<type>	\fIBUF\fP(*) 
+	INTEGER	\fICOUNT, DATATYPE, SOURCE, TAG, COMM\fP 
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Recv(void* \fIbuf\fP, int \fIcount\fP, const Datatype& \fIdatatype\fP, 
+	int \fIsource\fP, int \fItag\fP, Status& \fIstatus\fP) const
+
+void Comm::Recv(void* \fIbuf\fP, int \fIcount\fP, const Datatype& \fIdatatype\fP, 
+	int \fIsource\fP, int \fItag\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Maximum number of elements to receive (integer).
+.TP 1i
+datatype
+Datatype of each receive buffer entry (handle).
+.TP 1i
+source
+Rank of source (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of receive buffer (choice).
+.TP 1i
+status
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This basic receive operation, MPI_Recv, is blocking: it returns only after the receive buffer contains the newly received message. A receive can complete before the matching send has completed (of course, it can complete only after the matching send has started).
+.sp
+The blocking semantics of this call are described in Section 3.4 of the MPI-1 Standard, "Communication Modes."
+.sp
+The receive buffer contains a number (defined by the value of \fIcount\fP) of consecutive elements. The first element in the set of elements is located at \fIaddress_buf\fP. The type of each of these elements is specified by \fIdatatype\fP. 
+.sp
+The length of the received message must be less than or equal to the length of the receive buffer. An  MPI_ERR_TRUNCATE is returned upon the overflow condition.
+.sp
+If a message that is shorter than the length of the receive buffer arrives, then only
+those locations corresponding to the (shorter) received message are modified.
+
+.SH NOTES
+The \fIcount\fP argument indicates the maximum number of entries of type \fIdatatype\fP that can be received in a message. Once a message is received, use the MPI_Get_count function to determine the actual number of entries within that message.
+.sp
+To receive messages of unknown length, use the MPI_Probe function. (For more information about MPI_Probe and MPI_Cancel, see their respective man pages; also, see Section 3.8 of the MPI-1 Standard, "Probe and Cancel.") 
+.sp
+A message can be received by a receive operation only if it is addressed to the receiving process, and if its source, tag, and communicator (comm) values match the source, tag, and comm values specified by the receive operation. The receive operation may specify a wildcard value for source and/or tag, indicating that any source and/or tag are acceptable. The wildcard value for source is source = MPI_ANY_SOURCE. The wildcard value for tag is tag = MPI_ANY_TAG. There is no wildcard value for comm. The scope of these wildcards is limited to the proceses in the group of the specified communicator. 
+.sp
+The message tag is specified by the tag argument of the receive operation. 
+.sp
+The argument source, if different from MPI_ANY_SOURCE, is specified as a rank within the process group associated with that same communicator (remote process group, for intercommunicators). Thus, the range of valid values for the source argument is {0,...,n-1} {MPI_ANY_SOURCE}, where n is the number of processes in this group. 
+.sp
+Note the asymmetry between send and receive operations: A receive operation may accept messages from an arbitrary sender; on the other hand, a send operation must specify a unique receiver. This matches a "push" communication mechanism, where data transfer is effected by the sender (rather than a "pull" mechanism, where data transfer is effected by the receiver). 
+.sp
+Source = destination is allowed, that is, a process can send a message to itself. However, it is not recommended for a process to send messages to itself using the blocking send and receive operations described above, since this may lead to deadlock. See Section 3.5 of the MPI-1 Standard, "Semantics of Point-to-Point Communication." 
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Irecv
+MPI_Probe 
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv_init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv_init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Recv_init.3	(revision 97)
@@ -0,0 +1,92 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Recv_init 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Recv_init\fP \- Builds a handle for a receive.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Recv_init(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI source\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_RECV_INIT(\fIBUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST,
+		IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Prequest Comm::Recv_init(void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIsource\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Maximum number of elements to receive (integer).
+.TP 1i
+datatype
+Type of each entry (handle).
+.TP 1i
+source
+Rank of source (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH INPUT/OUTPUT PARAMETER
+.TP 1i
+buf
+Initial address of receive buffer (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Creates a persistent communication request for a receive operation. The argument \fIbuf\fP is marked as OUT because the user gives permission to write on the receive buffer by passing the argument to MPI_Recv_init.  
+.sp
+A persistent communication request is inactive after it is created -- no active communication is attached to the request. 
+.sp
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start or MPI_Startall. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Rsend_init
+.br
+MPI_Send_init
+.br
+MPI_Sssend_init
+.br
+MPI_Start
+.br
+MPI_Startall
+.br
+MPI_Request_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce.3	(revision 97)
@@ -0,0 +1,432 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Reduce 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Reduce\fP \- Reduces values on all processes within a group. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Reduce(void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int\fI count\fP,
+	MPI_Datatype\fI datatype\fP, MPI_Op\fI op\fP, int\fI root\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_REDUCE(\fISENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM,
+		IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fICOUNT, DATATYPE, OP, ROOT, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Intracomm::Reduce(const void* \fIsendbuf\fP, void* \fIrecvbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP, const MPI::Op& \fIop\fP,
+	int \fIroot\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (integer).
+.TP 1i
+datatype
+Data type of elements of send buffer (handle).
+.TP 1i
+op
+Reduce operation (handle).
+.TP 1i
+root
+Rank of root process (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Address of receive buffer (choice, significant only at root).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The global reduce functions (MPI_Reduce, MPI_Op_create, MPI_Op_free, MPI_Allreduce, MPI_Reduce_scatter, MPI_Scan) perform a global reduce operation (such as sum, max, logical AND, etc.) across all the members of a group. The reduction operation can be either one of a predefined list of operations, or a user-defined operation. The global reduction functions come in several flavors: a reduce that returns the result of the reduction at one node, an all-reduce that returns this result at all nodes, and a scan (parallel prefix) operation. In addition, a reduce-scatter operation combines the functionality of a reduce and a scatter operation.
+.sp
+MPI_Reduce combines the elements provided in the input buffer of each process in the group, using the operation op, and returns the combined value in the output buffer of the process with rank root. The input buffer is defined by the arguments sendbuf, count, and datatype; the output buffer is defined by the arguments recvbuf, count, and datatype; both have the same number of elements, with the same type. The routine is called by all group members using the same arguments for count, datatype, op, root, and comm. Thus, all processes provide input buffers and output buffers of the same length, with elements of the same type. Each process can provide one element, or a sequence of elements, in which case the combine operation is executed element-wise on each entry of the sequence. For example, if the operation is MPI_MAX and the send buffer contains two elements that are floating-point numbers (count = 2 and datatype = MPI_FLOAT), then recvbuf(1) = global max (sendbuf(1)) and recvbuf(2) = global max(sendbuf(2)). 
+.sp
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform a reduce operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the root process \fIsendbuf\fR.  In this case, the input data is taken at the root from the receive buffer, where it will be replaced by the output data.  
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group combines data from all the processes in the second group and then performs the \fIop\fR operation.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.  Only the send buffer arguments are significant in the second group, and only the receive buffer arguments are significant in the root process of the first group.    
+.sp  
+.SH PREDEFINED REDUCE OPERATIONS
+.sp
+The set of predefined operations provided by MPI is listed below (Predefined Reduce Operations). That section also enumerates the datatypes each operation can be applied to. In addition, users may define their own operations that can be overloaded to operate on several datatypes, either basic or derived. This is further explained in the description of the user-defined operations (see the man pages for MPI_Op_create and MPI_Op_free).
+.sp
+The operation op is always assumed to be associative. All predefined operations are also assumed to be commutative. Users may define operations that are assumed to be associative, but not commutative. The ``canonical'' evaluation order of a reduction is determined by the ranks of the processes in the group. However, the implementation can take advantage of associativity, or associativity and commutativity, in order to change the order of evaluation. This may change the result of the reduction for operations that are not strictly associative and commutative, such as floating point addition.  
+.sp
+Predefined operators work only with the MPI types listed below (Predefined Reduce Operations, and the section MINLOC and MAXLOC, below).  User-defined operators may operate on general, derived datatypes. In this case, each argument that the reduce operation is applied to is one element described by such a datatype, which may contain several basic values. This is further explained in Section 4.9.4 of the MPI Standard, "User-Defined Operations."
+
+The following predefined operations are supplied for MPI_Reduce and related functions MPI_Allreduce, MPI_Reduce_scatter, and MPI_Scan. These operations are invoked by placing the following in op:
+.sp
+.nf
+	Name                Meaning 
+     ---------           --------------------
+	MPI_MAX             maximum 
+	MPI_MIN             minimum 
+	MPI_SUM             sum 
+	MPI_PROD            product 
+	MPI_LAND            logical and 
+	MPI_BAND            bit-wise and 
+	MPI_LOR             logical or 
+	MPI_BOR             bit-wise or 
+	MPI_LXOR            logical xor 
+	MPI_BXOR            bit-wise xor 
+	MPI_MAXLOC          max value and location 
+	MPI_MINLOC          min value and location 
+.fi
+.sp
+The two operations MPI_MINLOC and MPI_MAXLOC are discussed separately below (MINLOC and MAXLOC). For the other predefined operations, we enumerate below the allowed combinations of op and datatype arguments. First, define groups of MPI basic datatypes in the following way:
+.sp
+.nf
+	C integer:            MPI_INT, MPI_LONG, MPI_SHORT, 
+	                      MPI_UNSIGNED_SHORT, MPI_UNSIGNED, 
+	                      MPI_UNSIGNED_LONG 
+	Fortran integer:      MPI_INTEGER 
+	Floating-point:       MPI_FLOAT, MPI_DOUBLE, MPI_REAL, 
+	                      MPI_DOUBLE_PRECISION, MPI_LONG_DOUBLE 
+	Logical:              MPI_LOGICAL 
+	Complex:              MPI_COMPLEX 
+	Byte:                 MPI_BYTE 
+.fi
+.sp
+Now, the valid datatypes for each option is specified below.
+.sp
+.nf
+	Op                      	Allowed Types 
+     ----------------         ---------------------------
+	MPI_MAX, MPI_MIN		C integer, Fortran integer, 
+						floating-point 
+
+	MPI_SUM, MPI_PROD 		C integer, Fortran integer, 
+						floating-point, complex 
+
+	MPI_LAND, MPI_LOR,		C integer, logical 
+	MPI_LXOR
+
+	MPI_BAND, MPI_BOR,		C integer, Fortran integer, byte 
+	MPI_BXOR
+.fi
+.sp
+\fBExample 1:\fR A routine that computes the dot product of two vectors that are distributed across a  group of processes and returns the answer at process zero. 
+.sp
+.nf
+    SUBROUTINE PAR_BLAS1(m, a, b, c, comm) 
+    REAL a(m), b(m)       ! local slice of array 
+    REAL c                ! result (at process zero) 
+    REAL sum 
+    INTEGER m, comm, i, ierr 
+     
+    ! local sum 
+    sum = 0.0 
+    DO i = 1, m 
+       sum = sum + a(i)*b(i) 
+    END DO 
+     
+    ! global sum 
+    CALL MPI_REDUCE(sum, c, 1, MPI_REAL, MPI_SUM, 0, comm, ierr) 
+    RETURN 
+.fi
+.sp
+\fBExample 2:\fR A routine that computes the product of a vector and an array that are distributed across a  group of processes and returns the answer at process zero.
+.sp
+.nf
+    SUBROUTINE PAR_BLAS2(m, n, a, b, c, comm) 
+    REAL a(m), b(m,n)    ! local slice of array 
+    REAL c(n)            ! result 
+    REAL sum(n) 
+    INTEGER n, comm, i, j, ierr 
+     
+    ! local sum 
+    DO j= 1, n 
+      sum(j) = 0.0 
+      DO i = 1, m 
+        sum(j) = sum(j) + a(i)*b(i,j) 
+      END DO 
+    END DO 
+    
+    ! global sum 
+    CALL MPI_REDUCE(sum, c, n, MPI_REAL, MPI_SUM, 0, comm, ierr) 
+     
+    ! return result at process zero (and garbage at the other nodes) 
+    RETURN
+
+.SH MINLOC AND MAXLOC
+.ft R
+The operator MPI_MINLOC is used to compute a global minimum and also an index attached to the minimum value. MPI_MAXLOC similarly computes a global maximum and index. One application of these is to compute a global minimum (maximum) and the rank of the process containing this value.   
+
+.sp
+The operation that defines MPI_MAXLOC is 
+.sp
+.nf
+         ( u )    (  v )      ( w )
+         (   )  o (    )   =  (   )
+         ( i )    (  j )      ( k )
+
+where
+
+    w = max(u, v)
+
+and
+
+         ( i            if u > v
+         (
+   k   = ( min(i, j)    if u = v
+         (
+         (  j           if u < v) 
+
+
+MPI_MINLOC is defined similarly:
+
+         ( u )    (  v )      ( w )
+         (   )  o (    )   =  (   )
+         ( i )    (  j )      ( k )
+
+where
+
+    w = max(u, v)
+
+and
+
+         ( i            if u < v
+         (
+   k   = ( min(i, j)    if u = v
+         (
+         (  j           if u > v) 
+
+
+.fi
+.sp
+
+Both operations are associative and commutative. Note that if MPI_MAXLOC is
+applied to reduce a sequence of pairs (u(0), 0), (u(1), 1),\ ..., (u(n-1),
+n-1), then the value returned is (u , r), where u= max(i) u(i) and r is
+the index of the first global maximum in the sequence. Thus, if each
+process supplies a value and its rank within the group, then a reduce
+operation with op = MPI_MAXLOC will return the maximum value and the rank
+of the first process with that value. Similarly, MPI_MINLOC can be used to
+return a minimum and its index. More generally, MPI_MINLOC computes a
+lexicographic minimum, where elements are ordered according to the first
+component of each pair, and ties are resolved according to the second
+component.
+.sp
+The reduce operation is defined to operate on arguments that consist of a
+pair: value and index. For both Fortran and C, types are provided to
+describe the pair. The potentially mixed-type nature of such arguments is a
+problem in Fortran. The problem is circumvented, for Fortran, by having the
+MPI-provided type consist of a pair of the same type as value, and coercing
+the index to this type also. In C, the MPI-provided pair type has distinct
+types and the index is an int.
+.sp
+In order to use MPI_MINLOC and MPI_MAXLOC in a reduce operation, one must
+provide a datatype argument that represents a pair (value and index). MPI
+provides nine such predefined datatypes. The operations MPI_MAXLOC and
+MPI_MINLOC can be used with each of the following datatypes:
+.sp
+.nf
+    Fortran: 
+    Name                     Description 
+    MPI_2REAL                pair of REALs 
+    MPI_2DOUBLE_PRECISION    pair of DOUBLE-PRECISION variables 
+    MPI_2INTEGER             pair of INTEGERs 
+    
+    C: 		
+    Name        	    	Description 
+    MPI_FLOAT_INT            float and int 
+    MPI_DOUBLE_INT           double and int 
+    MPI_LONG_INT             long and int 
+    MPI_2INT                 pair of ints 
+    MPI_SHORT_INT            short and int 
+    MPI_LONG_DOUBLE_INT      long double and int
+.fi
+.sp
+The data type MPI_2REAL is equivalent to:
+.nf
+    MPI_TYPE_CONTIGUOUS(2, MPI_REAL, MPI_2REAL)     
+.fi
+.sp
+Similar statements apply for MPI_2INTEGER, MPI_2DOUBLE_PRECISION, and
+MPI_2INT.
+.sp 
+The datatype MPI_FLOAT_INT is as if defined by the following sequence of
+instructions.
+.sp
+.nf
+    type[0] = MPI_FLOAT 
+    type[1] = MPI_INT 
+    disp[0] = 0 
+    disp[1] = sizeof(float) 
+    block[0] = 1 
+    block[1] = 1 
+    MPI_TYPE_STRUCT(2, block, disp, type, MPI_FLOAT_INT)
+.fi
+.sp
+Similar statements apply for MPI_LONG_INT and MPI_DOUBLE_INT.  
+.sp
+\fBExample 3:\fR Each process has an array of 30 doubles, in C. For each of
+the 30 locations, compute the value and rank of the process containing the
+largest value.
+.sp
+.nf
+        \&... 
+        /* each process has an array of 30 double: ain[30] 
+         */ 
+        double ain[30], aout[30]; 
+        int  ind[30]; 
+        struct { 
+            double val; 
+            int   rank; 
+        } in[30], out[30]; 
+        int i, myrank, root; 
+     
+        MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 
+        for (i=0; i<30; ++i) { 
+            in[i].val = ain[i]; 
+            in[i].rank = myrank; 
+        } 
+        MPI_Reduce( in, out, 30, MPI_DOUBLE_INT, MPI_MAXLOC, root, comm ); 
+        /* At this point, the answer resides on process root 
+         */ 
+        if (myrank == root) { 
+            /* read ranks out 
+             */ 
+            for (i=0; i<30; ++i) { 
+                aout[i] = out[i].val; 
+                ind[i] = out[i].rank; 
+            } 
+        } 
+.sp
+.fi
+\fBExample 4:\fR  Same example, in Fortran.  
+.sp
+.nf
+    \&... 
+    ! each process has an array of 30 double: ain(30) 
+     
+    DOUBLE PRECISION ain(30), aout(30) 
+    INTEGER ind(30); 
+    DOUBLE PRECISION in(2,30), out(2,30) 
+    INTEGER i, myrank, root, ierr; 
+     
+    MPI_COMM_RANK(MPI_COMM_WORLD, myrank); 
+        DO I=1, 30 
+            in(1,i) = ain(i) 
+            in(2,i) = myrank    ! myrank is coerced to a double 
+        END DO 
+     
+    MPI_REDUCE( in, out, 30, MPI_2DOUBLE_PRECISION, MPI_MAXLOC, root, 
+                                                              comm, ierr ); 
+    ! At this point, the answer resides on process root 
+     
+    IF (myrank .EQ. root) THEN 
+            ! read ranks out 
+            DO I= 1, 30 
+                aout(i) = out(1,i) 
+                ind(i) = out(2,i)  ! rank is coerced back to an integer 
+            END DO 
+        END IF 
+.fi
+.sp
+\fBExample 5:\fR Each process has a nonempty array of values.  Find the minimum global value, the rank of the process that holds it, and its index on this process.
+.sp
+.nf
+    #define  LEN   1000 
+     
+    float val[LEN];        /* local array of values */ 
+    int count;             /* local number of values */ 
+    int myrank, minrank, minindex; 
+    float minval; 
+     
+    struct { 
+        float value; 
+        int   index; 
+    } in, out; 
+     
+    /* local minloc */ 
+    in.value = val[0]; 
+    in.index = 0; 
+    for (i=1; i < count; i++) 
+        if (in.value > val[i]) { 
+            in.value = val[i]; 
+            in.index = i; 
+        } 
+     
+    /* global minloc */ 
+    MPI_Comm_rank(MPI_COMM_WORLD, &myrank); 
+    in.index = myrank*LEN + in.index; 
+    MPI_Reduce( in, out, 1, MPI_FLOAT_INT, MPI_MINLOC, root, comm ); 
+        /* At this point, the answer resides on process root 
+         */ 
+    if (myrank == root) { 
+        /* read answer out 
+         */ 
+        minval = out.value; 
+        minrank = out.index / LEN; 
+        minindex = out.index % LEN;
+.fi
+.sp
+All MPI objects (e.g., MPI_Datatype, MPI_Comm) are of type INTEGER in Fortran.
+.SH NOTES ON COLLECTIVE OPERATIONS
+
+The reduction functions (
+.I MPI_Op
+) do not return an error value.  As a result,
+if the functions detect an error, all they can do is either call 
+.I MPI_Abort
+or silently skip the problem.  Thus, if you change the error handler from
+.I MPI_ERRORS_ARE_FATAL
+to something else, for example, 
+.I MPI_ERRORS_RETURN
+,
+then no error may be indicated.
+
+The reason for this is the performance problems in ensuring that
+all collective routines return the same error value.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Allreduce
+.br
+MPI_Reduce_scatter
+.br
+MPI_Scan
+.br
+MPI_Op_create
+.br
+MPI_Op_free
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce_scatter.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce_scatter.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Reduce_scatter.3	(revision 97)
@@ -0,0 +1,99 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Reduce_scatter 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Reduce_scatter\fP \- Combines values and scatters the results.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Reduce_scatter(void *\fIsendbuf\fP, void\fI *recvbuf\fP, int\fI *recvcounts\fP,
+	MPI_Datatype\fI datatype\fP, MPI_Op\fI op\fP, MPI_Comm\fI comm\fP)        
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_REDUCE_SCATTER(\fISENDBUF, RECVBUF, RECVCOUNTS, DATATYPE, OP,
+		COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fIRECVCOUNTS(*), DATATYPE, OP, COMM, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Reduce_scatter(const void* \fIsendbuf\fP, void* \fIrecvbuf\fP,
+	int \fIrecvcounts\fP[], const MPI::Datatype& \fIdatatype\fP,
+	const MPI::Op& \fIop\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Starting address of send buffer (choice).
+.TP 1i
+recvcounts
+Integer array specifying the number of elements in result distributed to
+each process. Array must be identical on all calling processes.
+.TP 1i
+datatype
+Datatype of elements of input buffer (handle).
+.TP 1i
+op
+Operation (handle).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Starting address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+MPI_Reduce_scatter first does an element-wise reduction on vector of \fIcount\fP\
+ =\ S(i)\fIrevcounts\fP[i] elements in the send buffer defined by \fIsendbuf\fP, \fIcount\fP, and
+\fIdatatype\fP. Next, the resulting vector of results is split into n disjoint
+segments, where n is the number of processes in the group. Segment i contains
+\fIrecvcounts\fP[i] elements. The ith segment is sent to process i and stored in
+the receive buffer defined by \fIrecvbuf\fP, \fIrecvcounts\fP[i], and \fIdatatype\fP.
+
+
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform a reduce-scatter operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the \fIsendbuf\fR.  In this case, the input data is taken from the top of the receive buffer.  The area occupied by the input data may be either longer or shorter than the data filled by the output data. 
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the reduce-scatter operation occurs in two phases.  First, the result of the reduction performed on the data provided by the processes in the first group is scattered among the processes in the second group.  Then the reverse occurs: the reduction performed on the data provided by the processes in the second group is scattered among the processes in the first group.  For each group, all processes provide the same \fIrecvcounts\fR argument, and the sum of the \fIrecvcounts\fR values should be the same for both groups.  
+.sp  
+.SH NOTES ON COLLECTIVE OPERATIONS
+
+The reduction functions (
+.I MPI_Op
+) do not return an error value.  As a result,
+if the functions detect an error, all they can do is either call 
+.I MPI_Abort
+or silently skip the problem.  Thus, if you change the error handler from
+.I MPI_ERRORS_ARE_FATAL
+to something else, for example, 
+.I MPI_ERRORS_RETURN
+,
+then no error may be indicated.
+
+The reason for this is the performance problems in ensuring that
+all collective routines return the same error value.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Register_datarep.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Register_datarep.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Register_datarep.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Register_datarep 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Register_datarep\fP \- Defines data representation. 
+
+
+
+.SH SYNTAX
+.ft R
+.nf
+C Syntax
+    #include <mpi.h>
+    int MPI_Register_datarep(char \fI*datarep\fP, 
+    	      MPI_Datarep_conversion_function \fI*read_conversion_fn\fP, 
+    	      MPI_Datarep_conversion_function \fI*write_conversion_fn\fP, 
+    	      MPI_Datarep_extent_function \fI*dtype_file_extent_fn\fP, 
+    	      void \fI*extra_state\fP)
+
+Fortran Syntax
+    INCLUDE 'mpif.h'
+    MPI_REGISTER_DATAREP(\fIDATAREP\fP, \fIREAD_CONVERSION_FN\fP, 
+	\fIWRITE_CONVERSION_FN\fP, \fIDTYPE_FILE_EXTENT_FN\fP, 
+	\fIEXTRA_STATE\fP,\fI IERROR\fP)
+		CHARACTER*(*) \fIDATAREP\fP 
+		EXTERNAL \fIREAD_CONVERSION_FN, WRITE_CONVERSION_FN, 
+		         DTYPE_FILE_EXTENT_FN\fP
+        	INTEGER	\fIIERROR\fP
+		INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Register_datarep(const char* \fIdatarep\fP,
+	MPI::Datarep_conversion_function* \fIread_conversion_fn\fP,
+	MPI::Datarep_conversion_function* \fIwrite_conversion_fn\fP,
+	MPI::Datarep_extent_function* \fIdtype_file_extent_fn\fP,
+	void* \fIextra_state\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datarep
+Data representation identifier (string).
+.ft R
+.TP 1i
+read_conversion_fn
+Function invoked to convert from file representation to native representation (function).
+.ft R
+.TP 1i
+write_conversion_fn
+Function invoked to convert from native representation to file representation (function).
+.ft R
+.TP 1i
+dtype_file_extent_fn
+Function invoked to get the extent of a data type as represented in the file (function).
+.ft R
+.TP 1i
+extra_state
+Extra state. 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Register_datarep defines a data representation. It associates the data representation's identifier (a string) with the functions that convert from file representation to the native representation and vice versa, with the function that gets the extent of a data type as represented in the file, as well as with "extra state," which is used for passing arguments. Once a data representation has been registered using this routine, you may specify its identifier as an argument to MPI_File_set_view, causing subsequent data-access operations to call the specified conversion functions. 
+
+The call associates \fIread_conversion_fn\fP, \fIwrite_conversion_fn\fP, and \fIdtype_file_extent_fn\fP with the data representation identifier \fIdatarep\fP. \fIdatarep\fP can then be used as an argument to MPI_File_set_view, causing subsequent data access operations to call the conversion functions to convert all data items accessed between file data representation and native representation. MPI_Register_datarep is a local operation and only registers the data representation for the calling MPI process. If \fIdatarep\fP is already defined, an error in the error class MPI_ERR_DUP_DATAREP is raised using the default file error handler. The length of a data representation string is limited to the value of MPI_MAX_DATAREP_STRING. MPI_MAX_DATAREP_STRING must have a value of at least 64. No routines are provided to delete data representations and free the associated resources; it is not expected that an application will generate them in significant numbers. 
+
+.SH NOTES
+.ft R
+
+The Fortran version of each MPI I/O routine includes a final argument, 
+IERROR, which is not defined in the PARAMETERS sections. This argument is used to return the error status of the routine in the manner typical for Fortran library routines. 
+.sp
+The C version of each routine returns an error status as an integer return value.
+.sp
+Error classes are found in mpi.h (for C), mpif.h (for Fortran), and mpi++.h (for C++). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. For MPI I/O function errors, the default error handler is set to MPI_ERRORS_RETURN. The error handler may be changed with MPI_File_set_errhandler; the predefined error handler MPI_ERRORS_ARE_FATAL may be used to make I/O errors fatal. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_free.3	(revision 97)
@@ -0,0 +1,129 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Request_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Request_free\fP \- Frees a communication request object.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Request_free(MPI_Request *request)
+
+.SH Fortran Syntax
+.nf
+\s-1INCLUDE\s0 'mpif.h'
+MPI_REQUEST_FREE(REQUEST, IERROR)
+	INTEGER	REQUEST, IERROR 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Request::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+request
+      Communication request (handle).
+
+.SH DESCRIPTION
+.ft R
+This operation allows a request object to be deallocated without waiting for the associated communication to complete.
+.sp
+MPI_Request_free marks the request object for deallocation and sets request
+to MPI_REQUEST_NULL. Any ongoing communication that is associated with the request will be allowed to complete. The request will be deallocated only after its completion. 
+
+.SH NOTES
+Once a request is freed by a call to MPI_Request_free, it is not possible to check for the successful completion of the associated communication with calls to MPI_Wait or MPI_Test. Also, if an error occurs subsequently during the communication, an error code cannot be returned to the user -- such an error must be treated as fatal. Questions arise as to how one knows when the operations have completed when using MPI_Request_free. Depending on the program logic, there may be other ways in which the program knows that certain operations have completed and this makes usage of MPI_Request_free practical. For example, an active send request could be freed when the logic of the program is such that the receiver sends a reply to the message sent -- the arrival of the reply informs the sender that the send has completed and the send buffer can be reused. An active receive request should never be freed, as the receiver will have no way to verify that the receive has completed and the receive buffer can be reused. 
+
+.sp
+\fBExample:\fR 
+.sp
+.nf
+    CALL MPI_COMM_RANK(MPI_COMM_WORLD, rank) 
+    IF(rank.EQ.0) THEN 
+        DO i=1, n 
+          CALL MPI_ISEND(outval, 1, MPI_REAL, 1, 0, req, ierr) 
+          CALL MPI_REQUEST_FREE(req, ierr) 
+          CALL MPI_IRECV(inval, 1, MPI_REAL, 1, 0, req, ierr) 
+          CALL MPI_WAIT(req, status, ierr) 
+        END DO 
+    ELSE    ! rank.EQ.1 
+        CALL MPI_IRECV(inval, 1, MPI_REAL, 0, 0, req, ierr) 
+        CALL MPI_WAIT(req, status) 
+        DO I=1, n-1 
+           CALL MPI_ISEND(outval, 1, MPI_REAL, 0, 0, req, ierr) 
+           CALL MPI_REQUEST_FREE(req, ierr) 
+           CALL MPI_IRECV(inval, 1, MPI_REAL, 0, 0, req, ierr) 
+           CALL MPI_WAIT(req, status, ierr) 
+        END DO 
+        CALL MPI_ISEND(outval, 1, MPI_REAL, 0, 0, req, ierr) 
+        CALL MPI_WAIT(req, status) 
+    END IF 
+.fi
+.sp
+This routine is normally used to free persistent requests created with
+either 
+.I MPI_Recv_init
+or 
+.I MPI_Send_init
+and friends.  However, it can be
+used to free a request created with 
+.I MPI_Irecv
+or 
+.I MPI_Isend
+and friends;
+in that case the use can not use the test/wait routines on the request.
+
+It 
+.B is
+permitted to free an active request.  However, once freed, you can not
+use the request in a wait or test routine (e.g., 
+.I MPI_Wait
+).
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Isend
+.br
+MPI_Irecv
+.br
+MPI_Issend
+.br
+MPI_Ibsend
+.br
+MPI_Irsend
+.br
+MPI_Recv_init
+.br
+MPI_Send_init
+.br
+MPI_Ssend_init
+.br
+MPI_Rsend_init
+.br
+MPI_Test
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+
+
+    
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_get_status.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_get_status.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Request_get_status.3	(revision 97)
@@ -0,0 +1,55 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Request_get_status 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Request_get_status\fP \- Access information associated with a request without freeing the request. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Request_get_status(MPI_Request \fIrequest\fP, int \fI*flag\fP, MPI_Status \fI*status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_REQUEST_FREE(\fIREQUEST\fP, \fIFLAG\fP, \fISTATUS\fP, \fIIERROR\fP)
+	INTEGER	REQUEST, STATUS(MPI_STATUS_SIZE), IERROR 
+	LOGICAL	FLAG
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Request::Get_status(MPI::Status& \fIstatus\fP) const
+
+bool MPI::Request::Get_status() const
+
+.SH INPUT PARAMETER
+.ft
+.TP 1i
+request
+      Communication request (handle).
+
+.SH OUTPUT PARAMETERS
+.ft
+.TP 1i
+flag
+Boolean flag, same as from MPI_Test (logical).
+.ft
+.TP 1i
+status
+MPI_Status object if flag is true (status).
+
+.SH DESCRIPTION
+.ft R
+MPI_Request_get_status sets \fIflag\fP=\fItrue\fP if the operation is complete or sets \fIflag\fP=\fIfalse\fP if it is not complete. If the operation is complete, it returns in \fIstatus\fP the request status. It does not deallocate or inactivate the request; a subsequent call to test, wait, or free should be executed with that request. 
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Rsend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Rsend\fP \- Ready send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Rsend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_RSEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Rsend(const void* \fIbuf\fP, int \fIcount\fP, const Datatype& 
+	\fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (nonnegative integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+A ready send may only be called if the user can guarantee that a receive is
+already posted. It is an error if the receive is not posted before the
+ready send is called.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend_init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend_init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Rsend_init.3	(revision 97)
@@ -0,0 +1,88 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Rsend_init 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Rsend_init\fP \- Builds a handle for a ready send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Rsend_init(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_RSEND_INIT(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST,
+		IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Prequest Comm::Rsend_init(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements sent (integer).
+.TP 1i
+datatype
+Type of each element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Creates a persistent communication object for a ready mode send operation, and binds to it all the arguments of a send operation.  
+.sp
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Send_init
+.br
+MPI_Sssend_init
+.br
+MPI_Recv_init
+.br
+MPI_Start
+.br
+MPI_Startall
+.br
+MPI_Request_free
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scan.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scan.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scan.3	(revision 97)
@@ -0,0 +1,201 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Scan 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Scan\fP \- Computes an inclusive scan (partial reduction)
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Scan(void *\fIsendbuf\fP, void *\fIrecvbuf\fP, int \fIcount\fP, 
+	MPI_Datatype \fIdatatype\fP, MPI_Op \fIop\fP, MPI_Comm \fIcomm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SCAN(\fISENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fICOUNT, DATATYPE, OP, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Intracomm::Scan(const void* \fIsendbuf\fP, void* \fIrecvbuf\fP,
+	int \fIcount\fP, const MPI::Datatype& \fIdatatype\fP,
+	const MPI::Op& \fIop\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Send buffer (choice).
+.TP 1i
+count
+Number of elements in input buffer (integer).
+.TP 1i
+datatype
+Data type of elements of input buffer (handle).
+.TP 1i
+op
+Operation (handle).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Scan is used to perform an inclusive prefix reduction on data
+distributed across the calling processes. The operation returns, in
+the \fIrecvbuf\fP of the process with rank i, the reduction
+(calculated according to the function \fIop\fP) of the values in the
+\fIsendbuf\fPs of processes with ranks 0, ..., i (inclusive). The type
+of operations supported, their semantics, and the constraints on send
+and receive buffers are as for MPI_Reduce.
+
+.SH EXAMPLE
+.ft R
+This example uses a user-defined operation to produce a segmented
+scan. A segmented scan takes, as input, a set of values and a set of
+logicals, where the logicals delineate the various segments of the
+scan. For example,
+.sp
+.nf
+values     v1      v2      v3      v4      v5      v6      v7      v8
+logicals   0       0       1       1       1       0       0       1
+result     v1    v1+v2     v3    v3+v4  v3+v4+v5   v6    v6+v7     v8
+.fi
+.sp
+The result for rank j is thus the sum v(i) + ... + v(j), where i is
+the lowest rank such that for all ranks n, i <= n <= j, logical(n) =
+logical(j). The operator that produces this effect is
+.sp
+.nf
+      [ u ]     [ v ]     [ w ]
+      [   ]  o  [   ]  =  [   ]
+      [ i ]     [ j ]     [ j ]
+.sp
+where
+.sp
+            ( u + v if i  = j
+      w  =  ( 
+            ( v     if i != j
+.fi
+.sp
+Note that this is a noncommutative operator. C code that implements it is
+given below.
+.sp
+.nf
+	typedef struct {
+		double val;
+		int log;
+	} SegScanPair;
+     
+	/*
+	 * the user-defined function
+	 */
+	void segScan(SegScanPair *in, SegScanPair *inout, int *len,
+		MPI_Datatype *dptr)
+	{
+		int i;
+		SegScanPair c;
+     
+		for (i = 0; i < *len; ++i) {
+			if (in->log == inout->log)
+				c.val = in->val + inout->val;
+			else
+				c.val = inout->val;
+
+			c.log = inout->log;
+			*inout = c;
+			in++;
+			inout++;
+		}
+	}
+.fi
+.sp
+Note that the inout argument to the user-defined function corresponds
+to the right-hand operand of the operator. When using this operator,
+we must be careful to specify that it is noncommutative, as in the
+following:
+.sp
+.nf
+	int			i, base; 
+	SeqScanPair	a, answer; 
+	MPI_Op		myOp; 
+	MPI_Datatype	type[2] = {MPI_DOUBLE, MPI_INT}; 
+	MPI_Aint		disp[2]; 
+	int			blocklen[2] = {1, 1}; 
+	MPI_Datatype	sspair; 
+
+	/*
+	 * explain to MPI how type SegScanPair is defined 
+	 */ 
+	MPI_Get_address(a, disp); 
+	MPI_Get_address(a.log, disp + 1); 
+	base = disp[0]; 
+	for (i = 0; i < 2; ++i)
+		disp[i] -= base; 
+	MPI_Type_struct(2, blocklen, disp, type, &sspair); 
+	MPI_Type_commit(&sspair);
+
+	/*
+	 * create the segmented-scan user-op
+	 * noncommutative - set commute (arg 2) to 0
+	 */ 
+	MPI_Op_create((MPI_User_function *)segScan, 0, &myOp);
+	\&... 
+	MPI_Scan(a, answer, 1, sspair, myOp, comm);
+.fi
+
+.SH USE OF IN-PLACE OPTION
+WHen the communicator is an intracommunicator, you can perform a scanning operation in place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the \fIsendbuf\fR argument.  The input data is taken from the receive buffer and replaced by the output data.  
+
+.SH NOTES ON COLLECTIVE OPERATIONS
+.ft R
+The reduction functions of type MPI_Op do not return an error value.
+As a result, if the functions detect an error, all they can do is
+either call MPI_Abort or silently skip the problem. Thus, if the
+error handler is changed from MPI_ERRORS_ARE_FATAL to something else
+(e.g., MPI_ERRORS_RETURN), then no error may be indicated.
+.sp
+The reason for this is the performance problems in ensuring that
+all collective routines return the same error value.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Exscan
+MPI_Op_create
+MPI_Reduce
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatter.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatter.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatter.3	(revision 97)
@@ -0,0 +1,150 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Scatter 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Scatter\fP \- Sends data from one task to all tasks in a group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Scatter(void *\fIsendbuf\fP, int\fI sendcount\fP, MPI_Datatype\fI sendtype\fP,
+	void\fI *recvbuf\fP, int\fI recvcount\fP, MPI_Datatype\fI recvtype\fP, int\fI root\fP,
+	MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SCATTER(\fISENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT,
+		RECVTYPE, ROOT, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT\fP 
+	INTEGER	\fICOMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Scatter(const void* \fIsendbuf\fP, int \fIsendcount\fP,
+	const MPI::Datatype& \fIsendtype\fP, void* \fIrecvbuf\fP,
+	int \fIrecvcount\fP, const MPI::Datatype& \fIrecvtype\fP, 
+	int \fIroot\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Address of send buffer (choice, significant only at root).
+.TP 1i
+sendcount
+Number of elements sent to each process (integer, significant only at
+root).
+.TP 1i
+sendtype
+Datatype of send buffer elements (handle, significant only at root). 
+.TP 1i
+recvcount
+Number of elements in receive buffer (integer).
+.TP 1i
+recvtype
+Datatype of receive buffer elements (handle).
+.TP 1i
+root
+Rank of sending process (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Scatter is the inverse operation to MPI_Gather. 
+.sp
+The outcome is as if the root executed n send operations,  
+.sp
+.nf
+    MPI_Send(sendbuf + i * sendcount * extent(sendtype), sendcount,
+             sendtype, i, \&...)
+.fi
+.sp
+and each process executed a receive,  
+.sp
+.nf
+    MPI_Recv(recvbuf, recvcount, recvtype, i, \&...).
+.fi
+.sp
+An alternative description is that the root sends a message with
+MPI_Send(\fIsendbuf\fP, \fIsendcount\fP * \fIn\fP,\ \fIsendtype\fP, \&...). This message is split
+into \fIn\fP equal segments, the ith segment is sent to the ith process in the
+group, and each process receives this message as above.
+.sp
+The send buffer is ignored for all nonroot processes. 
+.sp
+The type signature associated with \fIsendcount\fP, \fIsendtype\fP at the root must be
+equal to the type signature associated with \fIrecvcount\fP, \fIrecvtype\fP at all
+processes (however, the type maps may be different). This implies that the
+amount of data sent must be equal to the amount of data received, pairwise
+between each process and the root. Distinct type maps between sender and
+receiver are still allowed.
+.sp
+All arguments to the function are significant on process \fIroot\fP, while on
+other processes, only arguments \fIrecvbuf\fP, \fIrecvcount\fP, \fIrecvtype\fP, \fIroot\fP, \fIcomm\fP
+are significant. The arguments \fIroot\fP and \fIcomm\fP must have identical values on
+all processes.
+.sp
+The specification of counts and types should not cause any location on the
+root to be read more than once.
+.sp
+\fBRationale:\fR Though not needed, the last restriction is imposed so as
+to achieve symmetry with MPI_Gather, where the corresponding restriction (a
+multiple-write restriction) is necessary.
+.sp
+\fBExample:\fR The reverse of Example 1 in the MPI_Gather manpage. Scatter
+sets of 100 ints from the root to each process in the group.  
+.sp
+.nf
+        MPI_Comm comm;
+        int gsize,*sendbuf; 
+        int root, rbuf[100]; 
+        \&... 
+        MPI_Comm_size(comm, &gsize); 
+        sendbuf = (int *)malloc(gsize*100*sizeof(int)); 
+        \&... 
+        MPI_Scatter(sendbuf, 100, MPI_INT, rbuf, 100, 
+                    MPI_INT, root, comm);
+.fi
+
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform a gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the root process \fIrecvbuf\fR.  In this case, \fIrecvcount\fR and \fIrecvtype\fR are ignored, and the root process sends no data to itself.    
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group sends data to all processes in the second group.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.   The receive buffer argument of the root process in the first group must be consistent with the receive buffer argument of the processes in the second group.   
+.sp  
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+.nf
+MPI_Scatterv
+MPI_Gather
+MPI_Gatherv
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatterv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatterv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Scatterv.3	(revision 97)
@@ -0,0 +1,195 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Scatterv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Scatterv\fP \- Scatters a buffer in parts to all tasks in a group.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Scatterv(void *\fIsendbuf\fP, int\fI *sendcounts\fP, int\fI *displs\fP,
+	MPI_Datatype\fI sendtype\fP, void\fI *recvbuf\fP, int\fI recvcount\fP,
+	MPI_Datatype\fI recvtype\fP, int\fI root\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SCATTERV(\fISENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF,
+		RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNTS(*), DISPLS(*), SENDTYPE\fP
+	INTEGER	\fIRECVCOUNT, RECVTYPE, ROOT, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Comm::Scatterv(const void* \fIsendbuf\fP, const int \fIsendcounts\fP[],
+	const int \fIdispls\fP[], const MPI::Datatype& \fIsendtype\fP,
+	void* \fIrecvbuf\fP, int \fIrecvcount\fP, const MPI::Datatype&
+	\fIrecvtype\fP, int \fIroot\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Address of send buffer (choice, significant only at root).
+.TP 1i
+sendcounts
+Integer array (of length group size) specifying the number of elements to
+send to each processor.
+.TP 1i
+displs
+Integer array (of length group size). Entry i specifies the displacement
+(relative to sendbuf) from which to take the outgoing data to process i.
+.TP 1i
+sendtype
+Datatype of send buffer elements (handle).
+.TP 1i
+recvcount
+Number of elements in receive buffer (integer).
+.TP 1i
+recvtype
+Datatype of receive buffer elements (handle).
+.TP 1i
+root
+Rank of sending process (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Address of receive buffer (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Scatterv is the inverse operation to MPI_Gatherv. 
+.sp
+MPI_Scatterv extends the functionality of MPI_Scatter by allowing a varying
+count of data to be sent to each process, since \fIsendcounts\fP is now an array.
+It also allows more flexibility as to where the data is taken from on the
+root, by providing the new argument, \fIdispls\fP.
+.sp
+The outcome is as if the root executed \fIn\fP send operations,
+.sp
+.nf
+    MPI_Send(\fIsendbuf\fP + \fIdispls\fP[\fIi\fP] * \fIextent\fP(\fIsendtype\fP), \\
+             \fIsendcounts\fP[i], \fIsendtype\fP, \fIi\fP, \&...)
+
+and each process executed a receive,
+
+    MPI_Recv(\fIrecvbuf\fP, \fIrecvcount\fP, \fIrecvtype\fP, \fIroot\fP, \&...)
+
+The send buffer is ignored for all nonroot processes.
+.fi
+.sp
+The type signature implied by \fIsendcount\fP[\fIi\fP], \fIsendtype\fP at the root must be
+equal to the type signature implied by \fIrecvcount\fP, \fIrecvtype\fP at process \fIi\fP
+(however, the type maps may be different). This implies that the amount of
+data sent must be equal to the amount of data received, pairwise between
+each process and the root. Distinct type maps between sender and receiver
+are still allowed.
+.sp
+All arguments to the function are significant on process \fIroot\fP, while on
+other processes, only arguments \fIrecvbuf\fP, \fIrecvcount\fP, \fIrecvtype\fP, \fIroot\fP, \fIcomm\fP
+are significant. The arguments \fIroot\fP and \fIcomm\fP must have identical values on
+all processes.
+.sp
+The specification of counts, types, and displacements should not cause any
+location on the root to be read more than once.
+.sp
+\fBExample 1:\fR The reverse of Example 5 in the MPI_Gatherv manpage. We
+have a varying stride between blocks at sending (root) side, at the
+receiving side we receive 100 - \fIi\fP elements into the \fIi\fPth column of a 100 x 150 C array at process \fIi\fP. 
+.sp
+.nf
+    MPI_Comm comm; 
+        int gsize,recvarray[100][150],*rptr; 
+        int root, *sendbuf, myrank, bufsize, *stride; 
+        MPI_Datatype rtype; 
+        int i, *displs, *scounts, offset; 
+        \&... 
+        MPI_Comm_size( comm, &gsize); 
+        MPI_Comm_rank( comm, &myrank ); 
+     
+        stride = (int *)malloc(gsize*sizeof(int)); 
+        \&... 
+        /* stride[i] for i = 0 to gsize-1 is set somehow 
+         * sendbuf comes from elsewhere 
+         */ 
+        \&... 
+        displs = (int *)malloc(gsize*sizeof(int)); 
+        scounts = (int *)malloc(gsize*sizeof(int)); 
+        offset = 0; 
+        for (i=0; i<gsize; ++i) { 
+            displs[i] = offset; 
+            offset += stride[i]; 
+            scounts[i] = 100 - i; 
+        } 
+        /* Create datatype for the column we are receiving 
+         */ 
+        MPI_Type_vector( 100-myrank, 1, 150, MPI_INT, &rtype); 
+        MPI_Type_commit( &rtype ); 
+        rptr = &recvarray[0][myrank]; 
+        MPI_Scatterv(sendbuf, scounts, displs, MPI_INT, 
+                     rptr, 1, rtype, root, comm);
+.fi
+.sp
+\fBExample 2:\fR The reverse of Example 1 in the MPI_Gather manpage. The
+root process scatters sets of 100 ints to the other processes, but the sets
+of 100 are stride ints apart in the sending buffer. Requires use of
+MPI_Scatterv, where \fIstride\fP >= 100.  
+.sp
+.nf
+    MPI_Comm comm; 
+        int gsize,*sendbuf; 
+        int root, rbuf[100], i, *displs, *scounts; 
+     
+    \&... 
+     
+    MPI_Comm_size(comm, &gsize); 
+        sendbuf = (int *)malloc(gsize*stride*sizeof(int)); 
+        \&... 
+        displs = (int *)malloc(gsize*sizeof(int)); 
+        scounts = (int *)malloc(gsize*sizeof(int)); 
+        for (i=0; i<gsize; ++i) { 
+            displs[i] = i*stride; 
+            scounts[i] = 100; 
+        } 
+        MPI_Scatterv(sendbuf, scounts, displs, MPI_INT, 
+                     rbuf, 100, MPI_INT, root, comm);
+.fi
+.SH USE OF IN-PLACE OPTION
+When the communicator is an intracommunicator, you can perform a gather operation in-place (the output buffer is used as the input buffer).  Use the variable MPI_IN_PLACE as the value of the root process \fIrecvbuf\fR.  In this case, \fIrecvcount\fR and \fIrecvtype\fR are ignored, and the root process sends no data to itself.    
+.sp
+Note that MPI_IN_PLACE is a special kind of value; it has the same restrictions on its use as MPI_BOTTOM.
+.sp
+Because the in-place option converts the receive buffer into a send-and-receive buffer, a Fortran binding that includes INTENT must mark these as INOUT, not OUT.   
+.sp
+.SH WHEN COMMUNICATOR IS AN INTER-COMMUNICATOR
+.sp
+When the communicator is an inter-communicator, the root process in the first group sends data to all processes in the second group.  The first group defines the root process.  That process uses MPI_ROOT as the value of its \fIroot\fR argument.  The remaining processes use MPI_PROC_NULL as the value of their \fIroot\fR argument.  All processes in the second group use the rank of that root process in the first group as the value of their \fIroot\fR argument.   The receive buffer argument of the root process in the first group must be consistent with the receive buffer argument of the processes in the second group.   
+.sp  
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.sp
+.nf
+MPI_Gather
+MPI_Gatherv
+MPI_Scatter
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Send 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Send\fP \- Performs a standard-mode blocking send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Send(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP)
+	<type>	\fIBUF(*)\fP
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Send(const void* \fIbuf\fP, int \fIcount\fP, const Datatype& 
+	\fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements send (nonnegative integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Send performs a standard-mode, blocking send. 
+
+.SH NOTE
+.ft R
+This routine will block until the message is sent to the destination. For an in-depth explanation of the semantics of the standard-mode send, refer to the MPI-1 Standard. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Isend
+MPI_Bsend
+MPI_Recv
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send_init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send_init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Send_init.3	(revision 97)
@@ -0,0 +1,90 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Send_init 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Send_init\fP \- Builds a handle for a standard send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Send_init(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SEND_INIT(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST,
+		IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fIREQUEST, COUNT, DATATYPE, DEST, TAG\fP
+	INTEGER	\fICOMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Prequest Comm::Send_init(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements to send (integer).
+.TP 1i
+datatype
+Type of each element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Creates a persistent communication request for a standard mode send operation, and binds to it all the arguments of a send operation. 
+.sp
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start or MPI_Startall. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Ssend_init
+.br
+MPI_Rsend_init
+.br
+MPI_Recv_init
+.br
+MPI_Start
+.br
+MPI_Startall
+.br
+MPI_Request_free
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv.3	(revision 97)
@@ -0,0 +1,108 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Sendrecv 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Sendrecv\fP \- Sends and receives a message.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Sendrecv(void *\fIsendbuf\fP, int\fI sendcount\fP, MPI_Datatype\fI sendtype\fP,
+	int\fI dest\fP, int\fI sendtag\fP, void\fI *recvbuf\fP, int\fI recvcount\fP,
+	MPI_Datatype\fI recvtype\fP, int\fI source\fP, int\fI recvtag\fP, 
+	MPI_Comm\fI comm\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SENDRECV(\fISENDBUF, SENDCOUNT, SENDTYPE, DEST, SENDTAG,
+		RECVBUF, RECVCOUNT, RECVTYPE, SOURCE, RECVTAG, COMM,
+		STATUS, IERROR\fP)
+	<type>	\fISENDBUF(*), RECVBUF(*)\fP
+	INTEGER	\fISENDCOUNT, SENDTYPE, DEST, SENDTAG\fP
+	INTEGER	\fIRECVCOUNT, RECVTYPE, SOURCE, RECVTAG, COMM\fP
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Sendrecv(const void *\fIsendbuf\fP, int \fIsendcount\fP, const 
+	Datatype& \fIsendtype\fP, int \fIdest\fP, int \fIsendtag\fP, void *\fIrecvbuf\fP, 
+	int \fIrecvcount\fP, const Datatype& \fIrecvtype\fP, int \fIsource\fP, 
+	int \fIrecvtag\fP, Status& \fIstatus\fP) const 
+
+void Comm::Sendrecv(const void *\fIsendbuf\fP, int \fIsendcount\fP, const 
+	Datatype& \fIsendtype\fP, int \fIdest\fP, int \fIsendtag\fP, void *\fIrecvbuf\fP, 
+	int \fIrecvcount\fP, const Datatype& \fIrecvtype\fP, int \fIsource\fP, 
+	int \fIrecvtag\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+sendbuf
+Initial address of send buffer (choice).
+.TP 1i
+sendcount
+Number of elements to send (integer).
+.TP 1i
+sendtype
+Type of elements in send buffer (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+sendtag
+Send tag (integer).
+.TP 1i
+recvcount
+Maximum number of elements to receive (integer).
+.TP 1i
+recvtype
+Type of elements in receive buffer (handle).
+.TP 1i
+source
+Rank of source (integer).
+.TP 1i
+recvtag
+Receive tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+recvbuf
+Initial address of receive buffer (choice).
+.TP 1i
+status
+Status object (status). This refers to the receive operation.
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The send-receive operations combine in one call the sending of a message to one destination and the receiving of another message, from another process. The two (source and destination) are possibly the same. A send-receive operation is useful for executing a shift operation across a chain of processes. If blocking sends and receives are used for such a shift, then one needs to order the sends and receives correctly (for example, even processes send, then receive; odd processes receive first, then send) in order to prevent cyclic dependencies that may lead to deadlock. When a send-receive operation is used, the communication subsystem takes care of these issues. The send-receive operation can be used in conjunction with the functions described in Chapter 6 of the MPI-1 Standard, "Process Topologies," in order to perform shifts on various logical topologies. Also, a send-receive operation is useful for implementing remote procedure calls.
+.sp
+A message sent by a send-receive operation can be received by a regular receive operation or probed by a probe operation; a send-receive operation can receive a message sent by a regular send operation. 
+.sp
+MPI_Sendrecv executes a blocking send and receive operation. Both send and receive use the same communicator, but possibly different tags. The send buffer and receive buffers must be disjoint, and may have different lengths and datatypes.  
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Sendrecv_replace
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv_replace.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv_replace.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sendrecv_replace.3	(revision 97)
@@ -0,0 +1,98 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Sendrecv_replace 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Sendrecv_replace\fP \- Sends and receives a message using a single buffer.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Sendrecv_replace(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI sendtag\fP, int\fI source\fP, int\fI recvtag\fP, MPI_Comm\fI comm\fP,
+	MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SENDRECV_REPLACE(\fIBUF, COUNT, DATATYPE, DEST, SENDTAG, SOURCE,
+		RECVTAG, COMM, STATUS, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, SENDTAG\fP
+	INTEGER	\fISOURCE, RECVTAG, COMM\fP
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Sendrecv_replace(void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fIsendtag\fP, int \fIsource\fP, 
+	int \fIrecvtag\fP, Status& \fIstatus\fP) const 
+
+void Comm::Sendrecv_replace(void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fIsendtag\fP, int \fIsource\fP, 
+	int \fIrecvtag\fP) const 
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+buf
+Initial address of send and receive buffer (choice).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of elements in send and receive buffer (integer).
+.TP 1i
+datatype
+Type of elements to send and receive (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+sendtag
+Send message tag (integer).
+.TP 1i
+source
+Rank of source (integer).
+.TP 1i
+recvtag
+Receive message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status
+Status object (status).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The send-receive operations combine in one call the sending of a message to one destination and the receiving of another message, from another process. The two (source and destination) are possibly the same. A send-receive operation is useful for executing a shift operation across a chain of processes. If blocking sends and receives are used for such a shift, then one needs to order the sends and receives correctly (for example, even processes send, then receive; odd processes receive first, then send) in order to prevent cyclic dependencies that may lead to deadlock. When a send-receive operation is used, the communication subsystem takes care of these issues. The send-receive operation can be used in conjunction with the functions described in Chapter 6 of the MPI Standard, "Process Topologies," in order to perform shifts on various logical topologies. Also, a send-receive operation is useful for implementing remote procedure calls.
+.sp
+A message sent by a send-receive operation can be received by a regular receive operation or probed by a probe operation; a send-receive operation can receive a message sent by a regular send operation. 
+.sp
+MPI_Sendrecv_replace executes a blocking send and receive. The same buffer is used both for the send and for the receive, so that the message sent is replaced by the message received.
+.sp
+The semantics of a send-receive operation is what would be obtained if the caller forked two concurrent threads, one to execute the send, and one to execute the receive, followed by a join of these two threads.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Sendrecv
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sizeof.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sizeof.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Sizeof.3	(revision 97)
@@ -0,0 +1,61 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Sizeof 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Sizeof\fP \- Returns the size, in bytes, of the given type
+
+.SH SYNTAX
+.ft R
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SIZEOF(\fIX, SIZE, IERROR\fP)
+<type>	\fIX\fP
+INTEGER	\fISIZE, IERROR\fP 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+X
+A Fortran variable of numeric intrisic type (choice).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+SIZE
+Size of machine representation of that type (integer).
+.ft R
+.TP 1i
+IERROR
+Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_SIZEOF returns the size (in bytes) of the machine representation
+of the given variable. It is a generic Fortran type and has a Fortran
+binding only. This routine is similar to the sizeof builtin in
+C/C++. However, if given an array argument, it returns the size of the
+base element, not the size of the whole array.
+
+.SH NOTES
+This function is not available in C/C++ because it is not necessary.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend.3	(revision 97)
@@ -0,0 +1,64 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Ssend 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Ssend\fP \- Standard synchronous send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Ssend(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP, int\fI dest\fP,
+	int\fI tag\fP, MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SSEND(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Comm::Ssend(const void* \fIbuf\fP, int \fIcount\fP, const Datatype& 
+	\fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements in send buffer (nonnegative integer).
+.TP 1i
+datatype
+Datatype of each send buffer element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Ssend performs a synchronous-mode, blocking send. See the MPI-1 Standard for more detailed information about such sends. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend_init.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend_init.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Ssend_init.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Ssend_init 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Ssend_init\fP \- Builds a handle for a synchronous send.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Ssend_init(void *\fIbuf\fP, int\fI count\fP, MPI_Datatype\fI datatype\fP,
+	int\fI dest\fP, int\fI tag\fP, MPI_Comm\fI comm\fP, MPI_Request\fI *request\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_SSEND_INIT(\fIBUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST,
+		IERROR\fP)
+	<type>	\fIBUF\fP(*)
+	INTEGER	\fICOUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Prequest Comm::Ssend_init(const void* \fIbuf\fP, int \fIcount\fP, const 
+	Datatype& \fIdatatype\fP, int \fIdest\fP, int \fItag\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+buf
+Initial address of send buffer (choice).
+.TP 1i
+count
+Number of elements to send (integer).
+.TP 1i
+datatype
+Type of each element (handle).
+.TP 1i
+dest
+Rank of destination (integer).
+.TP 1i
+tag
+Message tag (integer).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+request
+Communication request (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Creates a persistent communication object for a synchronous mode send operation, and binds to it all the arguments of a send operation.  
+.sp
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Send_init
+.br
+MPI_Rsend_init
+.br
+MPI_Recv_init
+.br
+MPI_Start
+.br
+MPI_Startall
+.br
+MPI_Ssend
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Start.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Start.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Start.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Start 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Start\fP \- Initiates a communication using a persistent request handle.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Start(MPI_Request *\fIrequest\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_START(\fIREQUEST, IERROR\fP)
+	INTEGER	\fIREQUEST, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Prequest::Start()
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+request
+Communication request (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+A communication (send or receive) that uses a persistent request is initiated by the function MPI_Start. 
+.sp
+The argument, request, is a handle returned by one of the persistent communication-request initialization functions (MPI_Send_init, MPI_Bsend_init,  MPI_Ssend_init, MPI_Rsend_init, MPI_Recv_init). The associated request should be inactive and becomes active once the call is made.
+.sp
+If the request is for a send with ready mode, then a matching receive should be posted before the call is made. From the time the call is made until after the operation completes, the communication buffer should not be accessed.
+.sp
+The call is local, with semantics similar to the nonblocking communication operations (see Section 3.7 in the MPI-1 Standard, "Nonblocking Communication.") That is, a call to MPI_Start with a request created by MPI_Send_init starts a communication in the same manner as a call to MPI_Isend; a call to MPI_Start with a request created by MPI_Bsend_init starts a communication in the same manner as a call to MPI_Ibsend; and so on.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Rsend_init
+.br
+MPI_Send_init
+.br
+MPI_Sssend_init
+.br
+MPI_Recv_init
+.br
+MPI_Startall
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Startall.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Startall.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Startall.3	(revision 97)
@@ -0,0 +1,84 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Startall 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Startall\fP \- Starts a collection of requests.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Startall(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_STARTALL(\fICOUNT, ARRAY_OF_REQUESTS, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_REQUESTS(*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void Prequest::Startall(int \fIcount\fP, Prequest \fIarray_of_requests\fP[]) 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+count
+List length (integer).
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+array_of_requests
+Array of requests (array of handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Starts all communications associated with requests in array_of_requests. A call to  MPI_Startall(count, array_of_requests) has the same effect as calls to MPI_Start (&array_of_requests[i]), executed for i=0 ,..., count-1, in some arbitrary order.  
+.sp
+A communication started with a call to MPI_Start or MPI_Startall is completed by a call to MPI_Wait, MPI_Test, or one of the derived functions MPI_Waitany, MPI_Testany, MPI_Waitall, MPI_Testall, MPI_Waitsome, MPI_Testsome (these are described in Section 3.7.5 of the MPI-1 Standard, "Multiple Completions"). The request becomes inactive after successful completion by such a call. The request is not deallocated, and it can be activated anew by another MPI_Start or MPI_Startall call.
+.sp
+A persistent request is deallocated by a call to MPI_Request_free (see Section 3.7.3  of the MPI-1 Standard, "Communication Completion").  
+.sp
+The call to MPI_Request_free can occur at any point in the program after the persistent request was created. However, the request will be deallocated only after it becomes inactive. Active receive requests should not be freed. Otherwise, it will not be possible to check that the receive has completed. It is preferable, in general, to free requests when they are inactive. If this rule is followed, then the persistent communication request functions will be invoked in a sequence of the form,
+.br
+.sp
+    Create (Start Complete)* Free 
+.br
+.sp
+where * indicates zero or more repetitions. If the same communication object is used in several concurrent threads, it is the user's responsibility to coordinate calls so that the correct sequence is obeyed.
+.sp
+A send operation initiated with MPI_Start can be matched with any receive operation and, likewise, a receive operation initiated with MPI_Start can receive messages generated by any send operation. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Bsend_init
+.br
+MPI_Rsend_init
+.br
+MPI_Send_init
+.br
+MPI_Ssend_init
+.br
+MPI_Recv_init
+.br
+MPI_Start
+.br
+MPI_Request_free
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Status_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_f2c.3	(revision 97)
@@ -0,0 +1,26 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Status_f2c 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Status_f2c, MPI_Status_c2f \fP \- Translates a C status into a Fortran status, or vice versa.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Status_f2c(MPI_Fint \fI*f_status\fP, MPI_Status \fI*c_status\fP)
+int MPI_Status_c2f(MPI_Status \fI*c_status\fP, MPI_Fint \fI*f_status\fP)
+
+.SH DESCRIPTION
+.ft R
+These two procedures are provided in C to convert from a Fortran status (which is an array of integers) to a C status (which is a structure), and vice versa. The conversion occurs on all the information in \fIstatus\fP, including that which is hidden. That is, no status information is lost in the conversion. 
+.sp
+When using MPI_Status_f2c, if \fIf_status\fP is a valid Fortran status, but not the Fortran value of MPI_STATUS_IGNORE or MPI_STATUSES_IGNORE, then MPI_Status_f2c returns in \fIc_status\fP a valid C status with the same content. If \fIf_status\fP is the Fortran value of MPI_STATUS_IGNORE or MPI_STATUSES_IGNORE, or if \fIf_status\fP is not a valid Fortran status, then the call is erroneous. 
+.sp
+When using MPI_Status_c2f, the opposite conversion is applied. If \fIc_status\fP is MPI_STATUS_IGNORE or MPI_STATUSES_IGNORE, or if \fIc_status\fP is not a valid C status, then the call is erroneous.
+.sp
+The C status has the same source, tag and error code values as the Fortran status, and returns the same answers when queried for count, elements, and cancellation. The conversion function may be called with a Fortran status argument that has an undefined error field, in which case the value of the error field in the C status argument is undefined. 
+.sp
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_cancelled.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_cancelled.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_cancelled.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Status_set_cancelled 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Status_set_cancelled\fP \- Sets \fIstatus\fP to indicate a request has been canceled. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Status_set_cancelled(MPI_Status *\fIstatus\fP, int \fIflag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_STATUS_SET_CANCELLED(\fISTATUS, FLAG, IERROR\fP)
+	INTEGER	\fISTATUS\fP(MPI_STATUS_SIZE), \fIIERROR \fP
+	LOGICAL \fIFLAG\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Status::Set_cancelled(bool \fIflag\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+status
+Status with which to associate cancel flag (status).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+flag
+If true, indicates request was canceled (logical).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+If \fIflag\fP is set to true, then a subsequent call to MPI_Test_cancelled(\fIstatus, flag\fP) will also return \fIflag\fP = true; otherwise it will return false. 
+
+.SH NOTES
+.ft R
+Users are advised not to reuse the status fields for values other than those for which they were intended. Doing so may lead to unexpected results when using the status object. For example, calling MPI_Get_elements may cause an error if the value is out of range, or it may be impossible to detect such an error. The \fIextra_state\fP argument provided with a generalized request can be used to return information that does not logically belong in \fIstatus\fP. Furthermore, modifying the values in a status set internally by MPI, such as MPI_Recv, may lead to unpredictable results and is strongly discouraged. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_elements.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_elements.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Status_set_elements.3	(revision 97)
@@ -0,0 +1,61 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Status_set_elements 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Status_set_elements\fP \- Modifies opaque part of \fIstatus\fP to allow MPI_Get_elements to return \fIcount\fP.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Status_set_elements(MPI_Status *\fIstatus\fP, MPI_Datatype \fIdatatype\fP, int \fIcount\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_STATUS_SET_ELEMENTS(\fISTATUS, DATATYPE, COUNT, IERROR\fP)
+	INTEGER	\fISTATUS\fP(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Status::Set_elements(const MPI::Datatype& \fIdatatype\fP, int \fIcount\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+status
+Status to associate with \fIcount\fP (status).
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datatype
+Data type associated with \fIcount\fP (handle).
+.TP 1i
+count
+Number of elements to associate with \fIstatus\fP (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Status_set_elements modifies the opaque part of \fIstatus\fP so that a call to MPI_Get_elements will return \fIcount\fP. MPI_Get_count will return a compatible value.
+.sp
+A subsequent call to MPI_Get_count(\fIstatus, datatype, count\fP) or to MPI_Get_elements(\fIstatus, datatype, count\fP) must use a data-type argument that has the same type signature as the data-type argument that was used in the call to MPI_Status_set_elements. 
+
+.SH NOTES
+.ft R
+Users are advised not to reuse the status fields for values other than those for which they were intended. Doing so may lead to unexpected results when using the status object. For example, calling MPI_Get_elements may cause an error if the value is out of range, or it may be impossible to detect such an error. The \fIextra_state\fP argument provided with a generalized request can be used to return information that does not logically belong in \fIstatus\fP. Furthermore, modifying the values in a status set internally by MPI, such as MPI_Recv, may lead to unpredictable results and is strongly discouraged. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test.3	(revision 97)
@@ -0,0 +1,107 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.\"Copyright 2007-2008 Cisco Systems, Inc.  All rights reserved.
+.TH MPI_Test 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Test\fP \- Tests for the completion of a specific send or receive.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Test(MPI_Request *\fIrequest\fP, int\fI *flag\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TEST(\fIREQUEST, FLAG, STATUS, IERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fIREQUEST, STATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool Request::Test(Status& \fIstatus\fP)
+
+bool Request::Test()
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+request
+Communication request (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag
+True if operation completed (logical).
+.TP 1i
+status
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+A call to MPI_Test returns flag = true if the operation identified by request is complete. In such a case, the status object is set to contain information on the completed operation; if the communication object was created by a nonblocking send or receive, then it is deallocated and the request handle is set to MPI_REQUEST_NULL. The call returns flag = false, otherwise. In this case, the value of the status object is undefined. MPI_Test is a local operation.  
+.sp
+The return status object for a receive operation carries information that can be accessed as described in Section 3.2.5 of the MPI-1 Standard, "Return Status." The status object for a send operation carries information that can be accessed by a call to MPI_Test_cancelled (see Section 3.8 of the MPI-1 Standard, "Probe and Cancel").
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+.sp
+One is allowed to call MPI_Test with a null or inactive \fIrequest\fP argument. In such a case the operation returns with \fIflag\fP = true and empty \fIstatus\fP.
+.sp
+The functions MPI_Wait and MPI_Test can be used to complete both sends and
+receives.
+
+.SH NOTES
+The use of the nonblocking MPI_Test call allows the user to schedule alternative activities within a single thread of execution. An event-driven thread scheduler can be emulated with periodic calls to MPI_Test. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler, MPI_File_set_errhandler, or
+MPI_Win_set_errhandler (depending on the type of MPI handle that
+generated the request); the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does
+not guarantee that an MPI program can continue past an error.
+.sp
+Note that per MPI-1 section 3.2.5, MPI exceptions on requests passed
+to MPI_TEST do not set the status.MPI_ERROR field in the returned
+status.  The error code is passed to the back-end error handler
+and may be passed back to the caller through the return value of
+MPI_TEST if the back-end error handler returns it.  The
+pre-defined MPI error handler MPI_ERRORS_RETURN exhibits this
+behavior, for example.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test_cancelled.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test_cancelled.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Test_cancelled.3	(revision 97)
@@ -0,0 +1,57 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Test_cancelled 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Test_cancelled\fP \- Tests whether a request was canceled.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Test_cancelled(MPI_Status *\fIstatus\fP, int \fI*flag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TEST_CANCELLED(\fISTATUS, FLAG, IERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool Status::Is_cancelled() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+status
+Status object (status).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag
+True if operation was cancelled (logical). 
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Returns \fIflag\fP = true if the communication associated with the status object
+was canceled successfully. In such a case, all other fields of status (such as \fIcount\fP or \fItag\fP) are undefined. Otherwise, returns \fIflag\fP = false. If a receive operation might be canceled, one should call MPI_Test_cancelled first, to check whether the operation was canceled, before checking on the other fields of the return status.
+
+.SH NOTES
+Cancel can be an expensive operation that should be used only exceptionally. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testall.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testall.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testall.3	(revision 97)
@@ -0,0 +1,117 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Testall 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Testall\fP \- Tests for the completion of all previously initiated communications in a list.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Testall(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP,
+	int\fI *flag\fP, MPI_Status\fI *array_of_statuses\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TESTALL(\fICOUNT, ARRAY_OF_REQUESTS, FLAG, ARRAY_OF_STATUSES,
+		IERROR\fP)
+	LOGICAL	\fIFLAG\fP
+	INTEGER	\fICOUNT, ARRAY_OF_REQUESTS(*)\fP
+	INTEGER	\fIARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static bool Request::Testall(int \fIcount\fP, Request 
+	\fIarray_of_requests\fP[], Status \fIarray_of_statuses\fP[]) 
+
+static bool Request::Testall(int \fIcount\fP, Request \fIarray_of_requests\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Lists length (integer).
+.TP 1i
+array_of_requests
+Array of requests (array of handles).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+flag
+True if previously initiated communications are complete (logical.)
+.TP 1i
+array_of_statuses
+Array of status objects (array of status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Returns \fIflag\fP = true if all communications associated with active handles in the array have completed (this includes the case where no handle in the list is active). In this case, each status entry that corresponds to an active handle request is set to the status of the corresponding communication; if the request was allocated by a nonblocking communication call then it is deallocated, and the handle is set to MPI_REQUEST_NULL. Each status entry that corresponds to a null or inactive handle is set to empty.
+.sp
+Otherwise, \fIflag\fP = false is returned, no request is modified and the values of the status entries are undefined. This is a local operation.
+.sp
+If your application does not need to examine the \fIarray_of_statuses\fP field, you can save resources by using the predefined constant MPI_STATUSES_IGNORE can be used as a special value for the \fIarray_of_statuses\fP argument. 
+.sp
+Errors that occurred during the execution of MPI_Testall are handled in the same manner as errors in MPI_Waitall.
+
+.SH NOTE
+.ft R
+\fIflag\fP is true only if all requests have completed. Otherwise, \fIflag\fP is false,
+and neither \fIarray_of_requests\fP nor \fIarray_of_statuses\fP is modified.
+
+.SH ERRORS
+For each invocation of MPI_Testall, if one or more requests generate
+an MPI exception, only the \fIfirst\fP MPI request that caused an
+exception will be passed to its corresponding error handler.  No other
+error handlers will be invoked (even if multiple requests generated
+exceptions).  However, \fIall\fP requests that generate an exception
+will have a relevant error code set in the corresponding
+status.MPI_ERROR field (unless MPI_IGNORE_STATUSES was used).
+.sp
+The default error handler aborts the MPI job, except for I/O function
+errors. The error handler may be changed with MPI_Comm_set_errhandler,
+MPI_File_set_errhandler, or MPI_Win_set_errhandler (depending on the
+type of MPI handle that generated the MPI request); the predefined
+error handler MPI_ERRORS_RETURN may be used to cause error values to
+be returned. Note that MPI does not guarantee that an MPI program can
+continue past an error.
+.sp
+If the invoked error handler allows MPI_Testall to return to the
+caller, the value MPI_ERR_IN_STATUS will be returned in the C and
+Fortran bindings.  In C++, if the predefined error handler
+MPI::ERRORS_THROW_EXCEPTIONS is used, the value MPI::ERR_IN_STATUS
+will be contained in the MPI::Exception object.  The MPI_ERROR field
+can then be examined in the array of returned statuses to determine
+exactly which request(s) generated an exception.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testany.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testany.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testany.3	(revision 97)
@@ -0,0 +1,112 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Testany 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Testany\fP \- Tests for completion of any one previously initiated communication in a list. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Testany(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP, 
+	int\fI *index\fP, int\fI *flag\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TESTANY(\fICOUNT, ARRAY_OF_REQUESTS, INDEX, FLAG, STATUS, IERROR\fP)
+	LOGICAL	\fIFLAG\fP 
+	INTEGER	\fICOUNT, ARRAY_OF_REQUESTS(*), INDEX\fP 
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static bool Request::Testany(int \fIcount\fP, Request \fIarray_of_requests\fP[], 
+	int& \fIindex\fP, Status& \fIstatus\fP) 
+
+static bool Request::Testany(int \fIcount\fP, Request \fIarray_of_requests\fP[], 
+	int& \fIindex\fP) 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+List length (integer).
+.TP 1i
+array_of_requests
+Array of requests (array of handles).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+index
+Index of operation that completed, or MPI_UNDEFINED if none completed
+(integer).
+.TP 1i
+flag
+True if one of the operations is complete (logical).
+.TP 1i
+status
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Testany tests for completion of either one or none of the operations associated with active handles. In the former case, it returns \fIflag\fP = true, returns in \fIindex\fP the index of this request in the array, and returns in \fIstatus\fP the status of that operation; if the request was allocated by a nonblocking communication call then the request is deallocated and the handle is set to MPI_REQUEST_NULL. (The array is indexed from 0 in C, and from 1 in Fortran.) In the latter case (no operation completed), it returns \fIflag\fP = false, returns a value of MPI_UNDEFINED in \fIindex\fP, and \fIstatus\fP is undefined.
+.sp
+The array may contain null or inactive handles. If the array contains no active handles then the call returns immediately with \fIflag\fP = true, \fIindex\fP = MPI_UNDEFINED, and an empty \fIstatus\fP.
+.sp
+If the array of requests contains active handles then the execution of
+MPI_Testany(count, array_of_requests, index, status) has the same effect as the execution of MPI_Test(&\fIarray_of_requests[i\fP], \fIflag\fP, \fIstatus\fP), for \fIi\fP=0,1,...,count-1, in some arbitrary order, until one call returns \fIflag\fP = true, or all fail. In the former case, \fIindex\fP is set to the last value of \fIi\fP, and in the latter case, it is set to MPI_UNDEFINED. MPI_Testany with an array containing one active entry is equivalent to MPI_Test.
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler, MPI_File_set_errhandler, or
+MPI_Win_set_errhandler (depending on the type of MPI handle that
+generated the request); the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does
+not guarantee that an MPI program can continue past an error.
+.sp
+Note that per MPI-1 section 3.2.5, MPI exceptions on requests passed
+to MPI_TESTANY do not set the status.MPI_ERROR field in the returned
+status.  The error code is passed to the back-end error handler and
+may be passed back to the caller through the return value of
+MPI_TESTANY if the back-end error handler returns it.  The pre-defined
+MPI error handler MPI_ERRORS_RETURN exhibits this behavior, for
+example.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testsome.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testsome.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Testsome.3	(revision 97)
@@ -0,0 +1,123 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Testsome 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Testsome\fP \- Tests for completion of one or more previously initiated communications in a list. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Testsome(int \fIincount\fP, MPI_Request \fI*array_of_requests\fP,
+	int\fI *outcount\fP, int\fI *array_of_indices\fP, MPI_Status\fI *array_of_statuses\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TESTSOME(\fIINCOUNT, ARRAY_OF_REQUESTS, OUTCOUNT,
+		ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERROR\fP)
+	INTEGER	\fIINCOUNT, ARRAY_OF_REQUESTS(*)\fP
+	INTEGER	\fIOUTCOUNT, ARRAY_OF_INDICES(*)\fP
+	INTEGER	\fIARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int Request::Testsome(int \fIincount\fP, Request 
+	\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[], Status \fIarray_of_statuses\fP[]) 
+
+static int Request::Testsome(int \fIincount\fP, Request 
+	\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[]) 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+incount
+Length of array_of_requests (integer).
+.TP 1i
+array_of_requests
+Array of requests (array of handles).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outcount
+Number of completed requests (integer).
+.TP 1i
+array_of_indices
+Array of indices of operations that completed (array of integers).
+.TP 1i
+array_of_statuses
+Array of status objects for operations that completed (array of status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Behaves like MPI_Waitsome, except that it returns immediately. If no operation has completed it returns outcount = 0. If there is no active handle in the list, it returns outcount = MPI_UNDEFINED.  
+.sp
+MPI_Testsome is a local operation, which returns immediately, whereas MPI_Waitsome blocks until a communication completes, if it was passed a list that contains at least one active handle. Both calls fulfill a fairness requirement: If a request for a receive repeatedly appears in a list of requests passed to MPI_Waitsome or MPI_Testsome, and a matching send has been posted, then the receive will eventually succeed unless the send is satisfied by another receive; send requests also fulfill this fairness requirement.
+.sp
+Errors that occur during the execution of MPI_Testsome are handled as for
+MPI_Waitsome. 
+.sp
+If your application does not need to examine the \fIarray_of_statuses\fP field, you can save resources by using the predefined constant MPI_STATUSES_IGNORE can be used as a special value for the \fIarray_of_statuses\fP argument. 
+
+.SH NOTES
+The use of MPI_Testsome is likely to be more
+efficient than the use of MPI_Testany. The former returns information on all completed communications; with the latter, a new call is required for each communication that completes. 
+.sp
+A server with multiple clients can use MPI_Waitsome so as not to starve any client. Clients send messages to the server with service requests. The server calls MPI_Waitsome with one receive request for each client, then handles all receives that have completed. If a call to MPI_Waitany is used instead, then one client could starve while requests from another client always sneak in first. 
+
+.SH ERRORS
+For each invocation of MPI_Testsome, if one or more requests generate
+an MPI exception, only the \fIfirst\fP MPI request that caused an
+exception will be passed to its corresponding error handler.  No other
+error handlers will be invoked (even if multiple requests generated
+exceptions).  However, \fIall\fP requests that generate an exception
+will have a relevant error code set in the corresponding
+status.MPI_ERROR field (unless MPI_IGNORE_STATUSES was used).
+.sp
+The default error handler aborts the MPI job, except for I/O function
+errors. The error handler may be changed with MPI_Comm_set_errhandler,
+MPI_File_set_errhandler, or MPI_Win_set_errhandler (depending on the
+type of MPI handle that generated the MPI request); the predefined
+error handler MPI_ERRORS_RETURN may be used to cause error values to
+be returned. Note that MPI does not guarantee that an MPI program can
+continue past an error.
+.sp
+If the invoked error handler allows MPI_Testsome to return to the
+caller, the value MPI_ERR_IN_STATUS will be returned in the C and
+Fortran bindings.  In C++, if the predefined error handler
+MPI::ERRORS_THROW_EXCEPTIONS is used, the value MPI::ERR_IN_STATUS
+will be contained in the MPI::Exception object.  The MPI_ERROR field
+can then be examined in the array of returned statuses to determine
+exactly which request(s) generated an exception.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Topo_test.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Topo_test.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Topo_test.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Topo_test 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Topo_test\fP \- Determines the type of topology (if any) associated with a communicator.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Topo_test(MPI_Comm \fIcomm\fP, int\fI *top_type\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TOPO_TEST(\fICOMM, TOP_TYPE, IERROR\fP)
+	INTEGER	\fICOMM, TOP_TYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Comm::Get_topology() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+top_type
+Topology type of communicator comm (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Topo_test returns the type of topology that is assigned to a communicator.
+.sp
+The output value \fItop_type\fP is one of the following:
+.sp
+.nf
+    MPI_GRAPH		graph topology
+    MPI_CART		Cartesian topology
+    MPI_UNDEFINED	no topology
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Graph_create
+.br
+MPI_Cart_create
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_commit.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_commit.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_commit.3	(revision 97)
@@ -0,0 +1,58 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_commit 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_commit\fP \- Commits a data type.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_commit(MPI_Datatype *\fIdatatype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_COMMIT(\fIDATATYPE, IERROR\fP)
+	INTEGER	\fIDATATYPE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Datatype::Commit()
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype
+Data type (handle).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The commit operation commits the data type. A data type is the formal description of a communication buffer, not the content of that buffer. After a data type has been committed, it can be repeatedly reused to communicate the changing content of a buffer or, indeed, the content of different buffers, with different starting addresses.  
+.sp
+\fBExample:\fP The following Fortran code fragment gives examples of using MPI_Type_commit. 
+.sp
+.nf
+    INTEGER type1, type2 
+    CALL MPI_TYPE_CONTIGUOUS(5, MPI_REAL, type1, ierr) 
+                  ! new type object created 
+    CALL MPI_TYPE_COMMIT(type1, ierr) 
+                  ! now type1 can be used for communication 
+.fi
+.sp
+If the data type specified in \fIdatatype\fP is already committed, it is equivalent to a no-op.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_contiguous.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_contiguous.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_contiguous.3	(revision 97)
@@ -0,0 +1,82 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_contiguous 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_contiguous\fP \- Creates a contiguous datatype.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_contiguous(int \fIcount\fP, MPI_Datatype\fI oldtype\fP,
+	MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CONTIGUOUS(\fICOUNT, OLDTYPE, NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, OLDTYPE, NEWTYPE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Datatype Datatype::Create_contiguous(int \fIcount\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count      
+Replication count (nonnegative integer).
+.TP 1i
+oldtype      
+Old datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The simplest datatype constructor is MPI_Type_contiguous, which allows replication of a datatype into contiguous locations. 
+.sp
+\fInewtype\fP is the datatype obtained by concatenating \fIcount\fP copies of \fIoldtype\fP. Concatenation is defined using the extent of \fIoldtype\fP as the size of the concatenated copies.  
+.sp
+\fBExample:\fR Let oldtype have type map {(double, 0), (char, 8)}, with extent 16, and let count = 3. The type map of the datatype returned by newtype is     
+.sp
+.nf
+    {(double, 0), (char, 8), (double, 16), (char, 24), 
+    (double, 32), (char, 40)];
+.fi
+.sp
+i.e., alternating double and char elements, with displacements 0, 8, 16, 24, 32, 40.
+.sp
+In general, assume that the type map of oldtype is    
+.sp
+.nf
+    {(type(0), disp(0)),...,(type(n-1), disp(n-1))},
+.fi
+.sp
+with extent ex. Then newtype has a type map with count times n entries defined by:    
+.sp
+.nf
+    {(type(0), disp(0)), ...,(type(n-1), disp(n-1)),
+    (type(0), disp(0) + ex), ...,(type(n-1), 
+    disp(n-1) + ex), ...,(type(0), disp(0) + ex * (count - 1)), 
+    ...,(type(n-1), disp(n-1) + ex * (count - 1))}.
+.fi
+.sp
+For more information about derived datatypes, see Section 3.12 of the MPI-1 Standard.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_darray.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_darray.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_darray.3	(revision 97)
@@ -0,0 +1,136 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_darray 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_darray\fP \- Creates a distributed array datatype;
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_darray(int \fIsize\fP, int \fIrank\fP, int \fIndims\fP, 
+	int \fIarray_of_gsizes\fP[], int \fIarray_of_distribs\fP[], 
+	int \fIarray_of_dargs\fP[], int \fIarray_of_psizes\fP[], 
+	int \fIorder\fP, MPI_Datatype \fIoldtype\fP, MPI_Datatype \fI*newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_DARRAY(\fISIZE, RANK, NDIMS, ARRAY_OF_GSIZES, 
+	ARRAY_OF_DISTRIBS, ARRAY_OF_DARGS, ARRAY_OF_PSIZES, ORDER, 
+	OLDTYPE, NEWTYPE, IERROR\fP)
+
+	INTEGER	\fISIZE, RANK, NDIMS, ARRAY_OF_GSIZES(*), ARRAY_OF_DISTRIBS(*),
+		ARRAY_OF_DARGS(*), ARRAY_OF_PSIZES(*), ORDER, OLDTYPE, 
+		NEWTYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_darray(int \fIsize\fP, int \fIrank\fP, 
+	int \fIndims\fP, const int \fIarray_of_gsizes\fP[], 
+	const int \fIarray_of_distribs\fP[], const int \fIarray_of_dargs\fP[], 
+	const int \fIarray_of_psizes\fP[], int \fIorder\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+size
+Size of process group (positive integer).
+.TP 1i
+rank
+Rank in process group (nonnegative integer).
+.TP 1i
+ndims
+Number of array dimensions as well as process grid dimensions (positive integer).
+.sp
+.TP 1i
+array_of_gsizes
+Number of elements of type \fIoldtype\fP in each dimension of global array (array of positive integers). 
+.sp
+.TP 1i
+array_of_distribs
+Distribution of array in each dimension (array of state).
+.TP 1i
+array_of_dargs
+Distribution argument in each dimension (array of positive integers).
+.sp
+.TP 1i
+array_of_psizes
+Size of process grid in each dimension (array of positive integers).
+.sp
+.TP 1i
+order
+Array storage order flag (state).
+.TP 1i
+oldtype
+Old data type (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+MPI_Type_create_darray can be used to generate the data types corresponding to the distribution of an ndims-dimensional array of \fIoldtype\fP elements onto an \fIndims\fP-dimensional grid of logical processes. Unused dimensions of \fIarray_of_psizes\fP should be set to 1. For a call to MPI_Type_create_darray to be correct, the equation 
+.sp
+.nf
+    \fIndims\fP-1
+  pi              \fIarray_of_psizes[i]\fP = \fIsize\fP
+    \fIi\fP=0
+
+.fi
+.sp
+must be satisfied. The ordering of processes in the process grid is assumed to be row-major, as in the case of virtual Cartesian process topologies in MPI-1. 
+.sp
+Each dimension of the array can be distributed in one of three ways:   
+.sp
+.nf
+- MPI_DISTRIBUTE_BLOCK - Block distribution   
+- MPI_DISTRIBUTE_CYCLIC - Cyclic distribution   
+- MPI_DISTRIBUTE_NONE - Dimension not distributed. 
+.fi
+.sp
+The constant MPI_DISTRIBUTE_DFLT_DARG specifies a default distribution argument. The distribution argument for a dimension that is not distributed is ignored. For any dimension \fIi\fP in which the distribution is MPI_DISTRIBUTE_BLOCK, it erroneous to specify \fIarray_of_dargs[i]\fP \fI*\fP \fIarray_of_psizes[i]\fP < \fIarray_of_gsizes[i]\fP.
+.sp
+For example, the HPF layout ARRAY(CYCLIC(15)) corresponds to MPI_DISTRIBUTE_CYCLIC with a distribution argument of 15, and the HPF layout ARRAY(BLOCK) corresponds to MPI_DISTRIBUTE_BLOCK with a distribution argument of MPI_DISTRIBUTE_DFLT_DARG. 
+.sp
+The \fIorder\fP argument is used as in MPI_TYPE_CREATE_SUBARRAY to specify the storage order. Therefore, arrays described by this type constructor may be stored in Fortran (column-major) or C (row-major) order. Valid values for order are MPI_ORDER_FORTRAN and MPI_ORDER_C. 
+.sp
+This routine creates a new MPI data type with a typemap defined in terms of a function called "cyclic()" (see below). 
+.sp
+Without loss of generality, it suffices to define the typemap for the MPI_DISTRIBUTE_CYCLIC case where MPI_DISTRIBUTE_DFLT_DARG is not used. 
+.sp
+MPI_DISTRIBUTE_BLOCK and MPI_DISTRIBUTE_NONE can be reduced to the MPI_DISTRIBUTE_CYCLIC case for dimension \fIi\fP as follows.
+.sp
+MPI_DISTRIBUTE_BLOCK with \fIarray_of_dargs[i]\fP equal to MPI_DISTRIBUTE_DFLT_DARG is equivalent to MPI_DISTRIBUTE_CYCLIC with \fIarray_of_dargs[i]\fP set to
+.sp
+.nf
+   (\fIarray_of_gsizes[i]\fP + \fIarray_of_psizes[i]\fP - 1)/\fIarray_of_psizes[i]\fP
+.fi
+.sp
+If \fIarray_of_dargs[i]\fP is not MPI_DISTRIBUTE_DFLT_DARG, then MPI_DISTRIBUTE_BLOCK and DISTRIBUTE_CYCLIC are equivalent.
+.sp
+MPI_DISTRIBUTE_NONE is equivalent to MPI_DISTRIBUTE_CYCLIC with \fIarray_of_dargs[i]\fP set to \fIarray_of_gsizes[i]\fP.
+.sp
+Finally, MPI_DISTRIBUTE_CYCLIC with \fIarray_of_dargs[i]\fP equal to MPI_DISTRIBUTE_DFLT_DARG is equivalent to MPI_DISTRIBUTE_CYCLIC with \fIarray_of_dargs[i]\fP set to 1.
+.sp
+
+.SH NOTES
+.ft R
+For both Fortran and C arrays, the ordering of processes in the process grid is assumed to be row-major. This is consistent with the ordering used in virtual Cartesian process topologies in MPI-1. To create such virtual process topologies, or to find the coordinates of a process in the process grid, etc., users may use the corresponding functions provided in MPI-1. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_complex.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_complex.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_complex.3	(revision 97)
@@ -0,0 +1,131 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_f90_complex 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Type_create_f90_complex\fP \- Returns a bounded MPI complex datatype
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_f90_complex(int \fIp\fP, int \fIr\fP,
+	MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_F90_COMPLEX (\fIP, R, NEWTYPE, IERROR\fP)
+	INTEGER	\fIP, R, NEWTYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Datatype MPI::Datatype::Create_f90_complex(int \fIp\fP, int \fIr\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+p
+Precision, in decimal digits (integer).
+.TP 1i
+r
+Decimal exponent range (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function provides a way to declare KIND-parameterized COMPLEX MPI
+datatypes. The arguments are interpreted in a similar fashion to the
+F90 function SELECTED_REAL_KIND. The parameters \fIp\fP and \fIr\fP
+must be scalar integers. The argument \fIp\fP represents the required
+level of numerical precision, in decimal digits. The \fIr\fP parameter
+indicates the range of exponents desired: the returned datatype will
+have at least one exponent between \+\fIr\fP and \-\fIr\fP (inclusive).
+.sp
+Either \fIp\fP or \fIr\fP, but not both, may be omitted from calls to
+SELECTED_REAL_KIND. Similarly, either argument to
+MPI_Type_create_f90_complex may be set to MPI_UNDEFINED.
+
+.SH NOTES
+.ft R
+It is erroneous to supply values for \fIp\fP and \fIr\fP not supported by
+the compiler.
+.sp
+The Fortran function SELECTED_REAL_KIND maps a large number of
+(\fIp,r\fP) pairs to a much smaller number of KIND parameters
+supported by the compiler. KIND parameters are not specified by the
+language and are not portable. From the point of view of the language,
+variables of the same base type and KIND parameter are equivalent,
+even if their KIND parameters were generated by different (\fIp,r\fP)
+arguments to SELECTED_REAL_KIND. However, to help facilitate
+interoperability in a heterogeneous environment, equivalency is more
+strictly defined for datatypes returned by
+MPI_Type_create_f90_complex. Two MPI datatypes, each generated by this
+function, will match if and only if they have identical values for
+both \fIp\fP and \fIr\fP.
+.sp
+The interaction between the datatypes returned by this function and
+the external32 data representation \- used by MPI_Pack_external,
+MPI_Unpack_external, and many MPI_File functions \- is subtle. The
+external32 representation of returned datatypes is as follows.
+.sp
+.nf
+	if (\fIp\fP > 33) and/or (\fIr\fP > 4931):
+		external32 size = n/a (undefined)
+	else if (\fIp\fP > 15) and/or (\fIr\fP > 307):
+		external32 size = 32
+	else if (\fIp\fP > 6) and/or (\fIr\fP > 37):
+		external32 size = 16
+	else:
+		external32 size = 8
+.fi
+.sp
+If the external32 representation of a datatype is undefined, so are
+the results of using that datatype in operations that require the
+external32 format. Care should be taken not to use incompatible
+datatypes indirectly, e.g., as part of another datatype or through a
+duplicated datatype, in these functions.
+.sp
+If a variable is declared specifying a nondefault KIND value that was
+not obtained with SELECTED_REAL_KIND (i.e., \fIp\fP and/or \fIr\fP are
+unknown), the only way to obtain a matching MPI datatype is to use the
+functions MPI_Sizeof and MPI_Type_match_size.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external
+MPI_Sizeof
+MPI_Type_match_size
+MPI_Unpack_external
+SELECTED_REAL_KIND
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_integer.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_integer.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_integer.3	(revision 97)
@@ -0,0 +1,124 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_f90_integer 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Type_create_f90_integer\fP \- Returns a bounded MPI integer datatype
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_f90_integer(int \fIr\fP, MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_F90_INTEGER (\fIR, NEWTYPE, IERROR\fP)
+	INTEGER	\fIR, NEWTYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Datatype MPI::Datatype::Create_f90_integer(int \fIr\fP)
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+r
+Precision, in decimal digits (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function provides a way to declare KIND-parameterized INTEGER MPI
+datatypes. The argument is interpreted in a similar fashion to the F90
+function SELECTED_INT_KIND: \fIr\fP must be a scalar integer, and
+represents the desired level of numerical precision, in decimal
+digits.
+
+.SH NOTES
+.ft R
+It is erroneous to supply a value for \fIr\fP not supported by the
+compiler.
+.sp
+The Fortran function SELECTED_INT_KIND maps a large number of \fIr\fP
+values to a much smaller number of KIND parameters supported by the
+compiler. KIND parameters are not specified by the language and are
+not portable. From the point of view of the language, variables of the
+same base type and KIND parameter are equivalent, even if their KIND
+parameters were generated by different \fIr\fP arguments to
+SELECTED_INT_KIND. However, to help facilitate interoperability in a
+heterogeneous environment, equivalency is more strictly defined for
+datatypes returned by MPI_Type_create_f90_integer. Two MPI datatypes,
+each generated by this function, will match if and only if they have
+identical values for \fIr\fP.
+.sp
+The interaction between the datatypes returned by this function and
+the external32 data representation \- used by MPI_Pack_external,
+MPI_Unpack_external and many MPI_File functions \- is subtle. The
+external32 representation of returned datatypes is as follows.
+.sp
+.nf
+	if (\fIr\fP > 38):
+		external32 size = n/a (undefined)
+	else if (\fIr\fP > 18):
+		external32 size = 16
+	else if (\fIr\fP > 9):
+		external32 size = 8
+	else if (\fIr\fP > 4):
+		external32 size = 4
+	else if (\fIr\fP > 2):
+		external32 size = 2
+	else:
+		external32 size = 1
+.fi
+.sp
+If the external32 representation of a datatype is undefined, so are
+the results of using that datatype in operations that require the
+external32 format. Care should be taken not to use incompatible
+datatypes indirectly, e.g., as part of another datatype or through a
+duplicated datatype, in these functions.
+.sp
+If a variable is declared specifying a nondefault KIND value that was
+not obtained with SELECTED_INT_KIND (i.e., \fIr\fP is unknown), the
+only way to obtain a matching MPI datatype is to use the functions
+MPI_Sizeof and MPI_Type_match_size.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external
+MPI_Sizeof
+MPI_Type_match_size
+MPI_Unpack_external
+SELECTED_INT_KIND
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_real.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_real.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_f90_real.3	(revision 97)
@@ -0,0 +1,130 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_f90_real 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Type_create_f90_real\fP \- Returns a bounded MPI real datatype
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_f90_real(int \fIp\fP, int \fIr\fP, MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_F90_REAL (\fIP, R, NEWTYPE, IERROR\fP)
+	INTEGER	\fIP, R, NEWTYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Datatype MPI::Datatype::Create_f90_real(int \fIp\fP, int \fIr\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+p
+Precision, in decimal digits (integer).
+.TP 1i
+r
+Decimal exponent range (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function provides a way to declare KIND-parameterized REAL MPI
+datatypes. The arguments are interpreted in a similar fashion to the
+F90 function SELECTED_REAL_KIND. The parameters \fIp\fP and \fIr\fP
+must be scalar integers. The argument \fIp\fP represents the required
+level of numerical precision, in decimal digits. The \fIr\fP parameter
+indicates the range of exponents desired: the returned datatype will
+have at least one exponent between \+\fIr\fP and \-\fIr\fP (inclusive).
+.sp
+Either \fIp\fP or \fIr\fP, but not both, may be omitted from calls to
+SELECTED_REAL_KIND. Similarly, either argument to
+MPI_Type_create_f90_real may be set to MPI_UNDEFINED.
+
+.SH NOTES
+.ft R
+It is erroneous to supply values for \fIp\fP and \fIr\fP not supported by
+the compiler.
+.sp
+The Fortran function SELECTED_REAL_KIND maps a large number of
+(\fIp,r\fP) pairs to a much smaller number of KIND parameters
+supported by the compiler. KIND parameters are not specified by the
+language and are not portable. From the point of view of the language,
+variables of the same base type and KIND parameter are equivalent,
+even if their KIND parameters were generated by different (\fIp,r\fP)
+arguments to SELECTED_REAL_KIND. However, to help facilitate
+interoperability in a heterogeneous environment, equivalency is more
+strictly defined for datatypes returned by
+MPI_Type_create_f90_real. Two MPI datatypes, each generated by this
+function, will match if and only if they have identical values for
+both \fIp\fP and \fIr\fP.
+.sp
+The interaction between the datatypes returned by this function and
+the external32 data representation \- used by MPI_Pack_external,
+MPI_Unpack_external and many MPI_File functions \- is subtle. The
+external32 representation of returned datatypes is as follows.
+.sp
+.nf
+	if (\fIp\fP > 33) and/or (\fIr\fP > 4931):
+		external32 size = n/a (undefined)
+	else if (\fIp\fP > 15) and/or (\fIr\fP > 307):
+		external32 size = 16
+	else if (\fIp\fP > 6) and/or (\fIr\fP > 37):
+		external32 size = 8
+	else:
+		external32 size = 4
+.fi
+.sp
+If the external32 representation of a datatype is undefined, so are
+the results of using that datatype in operations that require the
+external32 format. Care should be taken not to use incompatible
+datatypes indirectly, e.g., as part of another datatype or through a
+duplicated datatype, in these functions.
+.sp
+If a variable is declared specifying a nondefault KIND value that was
+not obtained with SELECTED_REAL_KIND (i.e., \fIp\fP and/or \fIr\fP are
+unknown), the only way to obtain a matching MPI datatype is to use the
+functions MPI_Sizeof and MPI_Type_match_size.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external
+MPI_Sizeof
+MPI_Type_match_size
+MPI_Unpack_external
+SELECTED_REAL_KIND
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hindexed.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hindexed.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hindexed.3	(revision 97)
@@ -0,0 +1,108 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_hindexed 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_hindexed\fP \- Creates an indexed data type with offsets in bytes.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_hindexed(int\fI count\fP, int \fIarray_of_blocklengths\fP[],
+	MPI_Aint \fIarray_of_displacements\fP[], MPI_Datatype \fIoldtype\fP,
+	MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_HINDEXED(\fICOUNT\fP,\fI ARRAY_OF_BLOCKLENGTHS\fP, 
+	\fIARRAY_OF_DISPLACEMENTS\fP, \fIOLDTYPE\fP, \fINEWTYPE\fP, \fIIERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_BLOCKLENGTHS(*), OLDTYPE, NEWTYPE, IERROR\fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIARRAY_OF_DISPLACEMENTS\fP(*)
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_hindexed(int \fIcount\fP, 
+	const int \fIarray_of_blocklengths\fP[],
+	const MPI::Aint \fIarray_of_displacements\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of blocks (nonnegative integer).
+.TP 1i
+array_of_blocklengths
+Number of elements in each block (array of nonnegative integers).
+.TP 1i
+array_of_displacements
+Byte displacement of each block (array of integers).
+.TP 1i
+oldtype
+Old data type (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_create_hindexed is identical to MPI_Type_indexed, except that block displacements in \fIarray_of_displacements\fP are specified in bytes, rather than in multiples of the \fIoldtype\fP extent. 
+.sp
+Assume that \fIoldtype\fP has type map
+.sp
+.nf
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1))},
+.fi
+.sp
+with extent \fIex\fP. Let B be the \fIarray_of_blocklengths\fP argument and D be the
+\fIarray_of_displacements\fP argument. The newly created data type has 
+.nf
+n x S^count-1
+    (i=0)        B[i]  entries:
+
+  {(type(0), disp(0) + D[0]),...,(type(n-1), disp(n-1) + D[0]),...,
+  (type(0), disp(0) + (D[0] + B[0]-1)* ex),..., 
+  type(n-1), disp(n-1) + (D[0]+ B[0]-1)* ex),...,
+  (type(0), disp(0) + D[count-1]),...,(type(n-1), disp(n-1) + D[count-1]),...,
+  (type(0), disp(0) +  D[count-1] + (B[count-1] -1)* ex),...,
+  (type(n-1), disp(n-1) + D[count-1] + (B[count-1] -1)* ex)}
+.fi
+.PP
+NOTE \- This routine replaces MPI_Type_hindexed, which is deprecated. See the man page MPI_Type_hindexed(3) for information about that routine.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIARRAY_OF_DISPLACEMENTS\fP(*) argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIARRAY_OF_DISPLACEMENTS\fP(*)
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+.sp
+See the MPI(3) man page for a full list of MPI error codes. 
+
+.SH SEE ALSO
+.ft R
+MPI_Type_indexed
+.br
+MPI_Type_hindexed
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hvector.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hvector.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_hvector.3	(revision 97)
@@ -0,0 +1,83 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_hvector 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_hvector\fP \- Creates a vector (strided) data type with offset in bytes. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_hvector(int \fIcount\fP, int \fIblocklength\fP, 
+	MPI_Aint \fIstride\fP, MPI_Datatype \fIoldtype\fP, MPI_Datatype *\fInewtype\fP) 
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_HVECTOR(\fICOUNT, BLOCKLENGTH, STRIDE, OLDTYPE, 
+	NEWTYPE, IERROR\fP)
+
+	INTEGER	\fICOUNT, BLOCKLENGTH, OLDTYPE, NEWTYPE, IERROR\fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fISTRIDE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_hvector(int \fIcount\fP, 
+	int \fIblocklength\fP, MPI::Aint \fIstride\fP) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of blocks (nonnegative integer).
+.TP 1i
+blocklength
+Number of elements in each block (nonnegative integer).
+.TP 1i
+stride
+Number of bytes between start of each block (integer).
+.TP 1i
+oldtype
+Old data type (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+MPI_Type_create_hvector creates a vector (strided) data type with offset in bytes. 
+.PP
+NOTE \- This routine replaces MPI_Type_hvector, which is deprecated. See the man page MPI_Type_hvector(3) for information about that routine.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fISTRIDE\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fISTRIDE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Type_hvector
+.br
+MPI_Type_vector
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_indexed_block.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_indexed_block.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_indexed_block.3	(revision 97)
@@ -0,0 +1,67 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_indexed_block 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_indexed_block\fP \- Creates an indexed data type with the same block length for all blocks. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_indexed_block(int \fIcount\fP, int \fIblocklength\fP, int \fIarray_of_displacements\fP[], MPI_Datatype \fIoldtype\fP, MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_INDEXED_BLOCK(\fICOUNT, BLOCKLENGTH, 
+		ARRAY_OF_DISPLACEMENTS, OLDTYPE, NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, BLOCKLENGTH, ARRAY_OF_DISPLACEMENTS(*),
+	        OLDTYPE, NEWTYPE, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_indexed_block( int \fIcount\fP,
+	int \fIblocklength\fP, const int \fIarray_of_displacements\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Length of array of displacements (integer).
+.TP 1i
+blocklength
+Size of block (integer).
+.TP 1i
+array_of_displacements
+Array of displacements (array of integers).
+.TP 1i
+oldtype
+Old data type (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_create_indexed_block creates an indexed data type with the same block length for all blocks. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_indexed
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_keyval.3	(revision 97)
@@ -0,0 +1,129 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_keyval\fP \- Generates a new attribute key for caching on data types. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_keyval(MPI_Type_copy_attr_function *\fItype_copy_attr_fn\fP, 
+	MPI_Type_delete_attr_function *\fItype_delete_attr_fn\fP, 
+	int *\fItype_keyval\fP, void *\fIextra_state\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_KEYVAL(\fITYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN, 
+		TYPE_KEYVAL, EXTRA_STATE, IERROR\fP)
+	EXTERNAL \fITYPE_COPY_ATTR_FN, TYPE_DELETE_ATTR_FN\fP
+	INTEGER	\fITYPE_KEYVAL, IERROR \fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int MPI::Datatype::Create_keyval(MPI::Datatype::Copy_attr_function*
+	\fItype_copy_attr_fn\fP, MPI::Datatype::Delete_attr_function*
+	\fItype_delete_attr_fn\fP, void* \fIextra_state\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+type_copy_attr_fn
+Copy callback function for \fItype_keyval\fP (function).
+.TP 1i
+type_delete_attr_fn
+Delete callback function for \fItype_keyval\fP (function).
+.TP 1i
+extra_state
+Extra state for callback functions.
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+type_keyval
+Key value for future access (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_create_keyval generates a new attribute key for caching on data types. This routine partially replaces MPI_Keyval_create. 
+.sp
+The argument \fItype_copy_attr_fn\fP may be specified as MPI_TYPE_NULL_COPY_FN or MPI_TYPE_DUP_FN from C, C++, or Fortran. MPI_TYPE_NULL_COPY_FN is a function that does nothing other than returning \fIflag\fP = 0 and MPI_SUCCESS. MPI_TYPE_DUP_FN is a simple-minded copy function that sets \fIflag\fP = 1, returns the value of \fIattribute_val_in\fP in \fIattribute_val_out\fP, and returns MPI_SUCCESS.
+.sp
+The argument \fItype_delete_attr_fn\fP may be specified as MPI_TYPE_NULL_DELETE_FN from C, C++, or Fortran. MPI_TYPE_NULL_DELETE_FN is a function that does nothing beyond returning MPI_SUCCESS.
+The C callback functions are: 
+.sp
+.nf
+typedef int MPI_Type_copy_attr_function(MPI_Datatype \fIoldtype\fP, 
+            int \fItype_keyval\fP, void *\fIextra_state\fP, void *\fIattribute_val_in\fP, 
+            void *\fIattribute_val_out\fP, int *\fIflag\fP); 
+.fi
+and
+.nf
+typedef int MPI_Type_delete_attr_function(MPI_Datatype \fItype\fP, int \fItype_keyval\fP, 
+             void *\fIattribute_val\fP, void *\fIextra_state\fP); 
+.fi
+.sp
+The Fortran callback functions are:
+.sp
+.nf
+SUBROUTINE TYPE_COPY_ATTR_FN(\fIOLDTYPE, TYPE_KEYVAL, EXTRA_STATE, 
+             ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR\fP) 
+    INTEGER \fIOLDTYPE, TYPE KEYVAL, IERROR\fP
+    INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE, 
+        ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT\fP 
+    LOGICAL \fIFLAG\fP 
+.fi
+and
+.nf
+SUBROUTINE TYPE_DELETE_ATTR_FN(\fITYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, EXTRA_STATE, 
+             IERROR\fP) 
+    INTEGER \fITYPE, TYPE_KEYVAL, IERROR\fP 
+    INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE VAL, EXTRA_STATE\fP 
+.fi
+.sp 
+The C++ callbacks are:
+.sp
+.nf
+typedef int MPI::Datatype::Copy_attr_function(const MPI::Datatype& \fIoldtype\fP, 
+             int \fItype_keyval\fP, void* \fIextra_state\fP, 
+             const void* \fIattribute_val_in\fP, void* \fIattribute_val_out\fP, 
+             bool& \fIflag\fP); 
+.fi
+and
+.nf
+typedef int MPI::Datatype::Delete_attr_function(MPI::Datatype& \fItype\fP, 
+             int \fItype_keyval\fP, void* \fIattribute_val\fP, void* \fIextra_state\fP); 
+.fi
+.sp
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIEXTRA_STATE\fP argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIEXTRA_STATE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_free_keyval
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_resized.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_resized.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_resized.3	(revision 97)
@@ -0,0 +1,81 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_create_resized 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_resized\fP \- Returns a new data type with new extent and upper and lower bounds. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_resized(MPI_Datatype \fIoldtype\fP, MPI_Aint\fI lb\fP, 
+	MPI_Aint \fIextent\fP, MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_RESIZED(\fIOLDTYPE, LB, EXTENT, NEWTYPE, IERROR\fP)
+	INTEGER	\fIOLDTYPE, NEWTYPE, IERROR\fP
+	INTEGER(KIND=MPI_ADDRESS_KIND)	\fILB, EXTENT\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_resized(const MPI::Aint \fIlb\fP, 
+	const MPI::Aint \fIextent\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+oldtype      
+Input data type (handle).
+.TP 1i
+lb
+New lower bound of data type (integer).
+.TP 1i
+extent
+New extent of data type (integer). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+Output data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_create_resized returns in \fInewtype\fP a handle to a new data type that is identical to \fIoldtype\fP, except that the lower bound of this new data type is set to be \fIlb\fP, and its upper bound is set to be \fIlb\fP + \fIextent\fP. Any previous \fIlb\fP and \fIub\fP markers are erased, and a new pair of lower bound and upper bound markers are put in the positions indicated by the \fIlb\fP and \fIextent\fP arguments. This affects the behavior of the data type when used in communication operations, with \fIcount\fP > 1, and when used in the construction of new derived data types. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fILB\fP and \fIEXTENT\fP arguments only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fILB\fP
+or
+     INTEGER*MPI_ADDRESS_KIND \fIEXTENT\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH NOTE
+.ft R
+Use of MPI_Type_create_resized is strongly recommended over the old MPI-1 functions MPI_Type_extent and MPI_Type_lb. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+
+MPI_Type_get_extent
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_struct.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_struct.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_struct.3	(revision 97)
@@ -0,0 +1,87 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_struct 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_struct\fP \- Creates a structured data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_struct(int \fIcount\fP, int \fIarray_of_blocklengths\fP[], 
+	MPI_Aint \fIarray_of_displacements\fP[], MPI_Datatype \fIarray_of_types\fP[], 
+	MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_STRUCT(\fICOUNT, ARRAY_OF_BLOCKLENGTHS, 
+		ARRAY_OF_DISPLACEMENTS, ARRAY_OF_TYPES, NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_BLOCKLENGTHS(*), ARRAY_OF_TYPES(*),\fP
+	INTEGER \fINEWTYPE, IERROR \fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIARRAY_OF_DISPLACEMENTS(*)\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Datatype MPI::Datatype::Create_struct(int \fIcount\fP,
+	const int \fIarray_of_blocklengths\fP[], const MPI::Aint
+	\fIarray_of_displacements\fP[], const MPI::Datatype 
+	\fIarray_of_types\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count
+Number of blocks (integer) -- also number of entries in arrays \fIarray_of_types\fP, \fIarray_of_displacements\fP, and \fIarray_of_blocklengths\fP. 
+.TP 1i
+array_of_blocklengths
+Number of elements in each block (array of integers).
+.TP 1i
+array_of_displacements
+Byte displacement of each block (array of integers).
+.TP 1i
+array_of_types
+Type of elements in each block (array of handles to data-type objects).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+MPI_Type_create_struct creates a structured data type. This routine replaces MPI_Type_struct, which is now deprecated. 
+.PP
+NOTE \- This routine replaces MPI_Type_struct, which is deprecated. See the man page MPI_Type_struct(3) for information about that routine.
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIARRAY_OF_DISPLACEMENTS\fP(*) argument only for Fortran 90.  FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIARRAY_OF_DISPLACEMENTS\fP(*)
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_struct
+.br
+MPI_Type_create_hindexed
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_subarray.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_subarray.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_create_subarray.3	(revision 97)
@@ -0,0 +1,124 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_create_subarray 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_create_subarray\fP \- Creates a data type describing an \fIn\fP-dimensional subarray of an \fIn\fP-dimensional array. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_create_subarray(int \fIndims\fP, int \fIarray_of_sizes[]\fP, int \fIarray_of_subsizes[]\fP, int \fIarray_of_starts[]\fP, int \fIorder\fP, MPI_Datatype \fIoldtype\fO, MPI_Datatype \fI*newtype\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_CREATE_SUBARRAY(\fINDIMS, ARRAY_OF_SIZES, ARRAY_OF_SUBSIZES, 
+	ARRAY_OF_STARTS, ORDER, OLDTYPE, NEWTYPE, IERROR\fP) 
+
+	INTEGER	\fINDIMS, ARRAY_OF_SIZES(*), ARRAY_OF_SUBSIZES(*),
+	ARRAY_OF_STARTS(*), ORDER, OLDTYPE, NEWTYPE, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Create_subarray(int \fIndims\fP, 
+	const int \fIarray_of_sizes\fP[], const int \fIarray_of_subsizes[]\fP, 
+	const int \fIarray_of_starts[]\fP, int \fIorder\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+ndims
+Number of array dimensions (positive integer).
+.TP 1i
+array_of_sizes
+Number of elements of type \fIoldtype\fP in each dimension of the full array (array of positive integers).
+.TP 1i
+array_of_subsizes
+Number of elements of type \fIoldtype\fP in each dimension of the subarray (array of positive integers).
+.TP 1i
+array_of_starts
+Starting coordinates of the subarray in each dimension (array of nonnegative integers).
+.TP 1i
+order
+Array storage order flag (state).
+.TP 1i
+oldtype
+Array element data type (handle).
+
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+New data type (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The subarray type constructor creates an MPI data type describing an \fIn\fP-dimensional subarray of an \fIn\fP-dimensional array. The subarray may be situated anywhere within the full array, and may be of any nonzero size up to the size of the larger array as long as it is confined within this array. This type constructor facilitates creating file types to access arrays distributed in blocks among processes to a single file that contains the global array. 
+.sp
+This type constructor can handle arrays with an arbitrary number of dimensions and works for both C- and Fortran-ordered matrices (that is, row-major or column-major). Note that a C program may use Fortran order and a Fortran program may use C order. 
+.sp
+The \fIndims\fP parameter specifies the number of dimensions in the full data array and gives the number of elements in \fIarray_of_sizes\fP, \fIarray_of_subsizes\fP, and \fIarray_of_starts\fP. 
+.sp
+The number of elements of type \fIoldtype\fP in each dimension of the \fIn\fP-dimensional array and the requested subarray are specified by \fIarray_of_sizes\fP and \fIarray_of_subsizes\fP, respectively. For any dimension \fIi\fP, it is erroneous to specify \fIarray_of_subsizes[i]\fP < 1 or \fIarray_of_subsizes[i]\fP > \fIarray of sizes[i]\fP. 
+.sp
+The \fIarray_of_starts\fP contains the starting coordinates of each dimension of the subarray. Arrays are assumed to be indexed starting from zero. For any dimension \fIi\fP, it is erroneous to specify 
+.sp
+.nf
+\fIarray_of_starts[i]\fP < 0 
+.fi
+.sp
+or 
+.sp
+.nf
+\fIarray_of_starts[i]\fP > (\fIarray_of_sizes[i]\fP - \fIarray_of_subsizes[i]\fP). 
+.fi
+.sp
+The \fIorder\fP argument specifies the storage order for the subarray as well as the full array. It must be set to one of the following: 
+.sp
+- MPI_ORDER_C: The ordering used by C arrays, (that is, row-major order)
+.sp
+- MPI_ORDER_FORTRAN: The ordering used by Fortran arrays, (that is, column-major order)
+.sp
+A \fIndims\fP-dimensional subarray (\fInewtype\fP) with no extra padding can be defined by the function Subarray() as follows: 
+.sp
+.nf
+   newtype = Subarray(ndims, {size , size ,\..., size       },
+                                  0      1           ndims-1
+             {subsize , subsize , \..., subsize       },
+                     0         1               ndims-1
+             {start , start , \..., start       }, \fIoldtype\fP)
+                   0       1             bduns-1
+.fi
+.sp
+Let the typemap of \fIoldtype\fP have the form:
+.sp
+.nf
+   {(type , disp ), (type , disp ), \..., (type   , disp   )}
+         0      0        1      1              n-1      n-1
+.fi
+.sp
+where type\fIi\fP is a predefined MPI data type, and let \fIex\fP be the extent of \fIoldtype\fP. 
+.sp
+The Subarray() function is defined recursively in three equations on page 72 of the MPI-2 standard. 
+.sp
+For an example use of MPI_Type_create_subarray in the context of I/O, see Section 9.9.2 of the MPI-2 standard.
+
+
+.SH NOTES
+.ft R
+In a Fortran program with arrays indexed starting from 1, if the starting coordinate of a particular dimension of the subarray is \fIn\fP, then the entry in array of starts for that dimension is \fIn\fP-1. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_delete_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_delete_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_delete_attr.3	(revision 97)
@@ -0,0 +1,52 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_delete_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_delete_attr\fP \- Deletes a datatype-caching attribute value associated with a key. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_delete_attr(MPI_Datatype \fItype\fP, int \fItype_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_DELETE_ATTR(\fITYPE, TYPE_KEYVAL, IERROR\fP)
+	INTEGER	\fITYPE, TYPE_KEYVAL, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Delete_attr(int \fItype_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+type
+Data type from which the attribute is deleted (handle).n
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+type_keyval
+Key value (integer). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_delete_attr deletes a datatype-caching attribute value associated with a key. This routines partially replaces MPI_Attr_delete, which is now deprecated. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_dup.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_dup.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_dup.3	(revision 97)
@@ -0,0 +1,55 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_dup 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_dup\fP \- Duplicates a data type with associated key values.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_dup(MPI_Datatype \fItype\fP, MPI_Datatype *\fInewtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_DUP(\fITYPE, NEWTYPE, IERROR\fP)
+	INTEGER	\fITYPE, NEWTYPE, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Datatype MPI::Datatype::Dup() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+type
+Data type (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype
+Copy of \fItype\fP (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_dup is a type constructor that duplicates the existing type with associated key values. For each key value, the respective copy callback function determines the attribute value associated with this key in the new communicator. One particular action that a copy callback may take is to delete the attribute from the new data type. Returns in \fInewtype\fP a new data type with exactly the same properties as \fItype\fP, as well as any copied cached information. The new data type has identical upper bound and lower bound and yields the same net result when fully decoded with the functions described in Section 8.6 of the MPI-2 standard. \fInewtype\fP has the same committed state as the old \fItype\fP.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_keyval
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_extent.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_extent.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_extent.3	(revision 97)
@@ -0,0 +1,88 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_extent 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_extent\fP \- Returns the extent of a data type, the difference between the upper and lower bounds of the data type -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_extent(MPI_Datatype \fIdatatype\fP, MPI_Aint\fI *extent\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_EXTENT(\fIDATATYPE, EXTENT, IERROR\fP)
+	INTEGER	\fIDATATYPE, EXTENT, IERROR\fP 
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+extent      
+Datatype extent (integer).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Type_get_extent instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+MPI_Type_extent returns the extent of a data type, the difference between the upper and lower bounds of the data type. 
+.sp
+In general, if
+.sp
+.nf
+    Typemap = {(type(0), disp(0)), ..., (type(n-1), disp(n-1))}
+.fi
+.sp
+then the lower bound of Typemap is defined to be 
+.sp
+.nf
+              ( min(j) disp(j)                         if no entry has
+  lb(Typemap)=(                                        basic type lb
+              (min(j) {disp(j) such that type(j) = lb} otherwise
+
+.fi
+.sp
+Similarly, the upper bound of Typemap is defined to be
+.sp
+.nf
+              (max(j) disp(j) + sizeof(type(j)) + e    if no entry has
+  ub(Typemap)=(                                        basic type ub
+              (max(j) {disp(j) such that type(j) = ub} otherwise
+.fi
+.sp
+Then 
+.sp
+.nf
+    extent(Typemap) = ub(Typemap) - lb(Typemap)
+.fi
+.sp
+If type(i) requires alignment to a byte address that is a multiple of k(i), then e is the least nonnegative increment needed to round extent(Typemap) to the next multiple of max(i) k(i). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_get_extent
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_free\fP \- Frees a data type.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_free(MPI_Datatype *\fIdatatype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_FREE(\fIDATATYPE, IERROR\fP)
+	INTEGER	\fIDATATYPE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Datatype::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Datatype that is freed (handle).
+.sp
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Marks the datatype object associated with datatype for de-allocation and sets datatype to MPI_DATATYPE_NULL. Any communication that is currently using this datatype will complete normally. Derived datatypes that were defined from the freed datatype are not affected. 
+.sp
+Freeing a datatype does not affect any other datatype that was built from the freed datatype. The system behaves as if input datatype arguments to derived datatype constructors are passed by value.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_free_keyval.3	(revision 97)
@@ -0,0 +1,51 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_free_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_free_keyval\fP \- Frees a previously created type key value. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_free_keyval(int *\fItype_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_FREE_KEYVAL(\fITYPE_KEYVAL, IERROR\fP)
+	INTEGER	\fITYPE_KEYVAL, IERROR \fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void MPI::Datatype::Free_keyval(int& \fItype_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+type_keyval
+Key value to free (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_keyval
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_attr.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_get_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_attr\fP \- Returns the attribute associated with a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_attr(MPI_Datatype \fItype\fP, int \fItype_keyval\fP, void *\fIattribute_val\fP, int *\fIflag\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_GET_ATTR(\fITYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR\fP)
+	INTEGER	\fITYPE, TYPE_KEYVAL, IERROR \fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP 
+	LOGICAL \fIFLAG\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Datatype::Get_attr(int \fItype_keyval\fP, void* \fIattribute_val\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+type
+Data type to which the attribute is attached (handle). 
+.TP 1i
+type_keyval
+Key value (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+attribute_val
+Attribute value, unless \fIflag\fP = false
+.TP 1i
+flag
+"false" if no attribute is associated with the key (logical).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+For the given data type, MPI_Type_get_attr returns an attribute value that corresponds to the specified key value. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90.  Sun FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_set_attr
+.br
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_contents.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_contents.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_contents.3	(revision 97)
@@ -0,0 +1,102 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_get_contents 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_contents\fP \- Returns information about arguments used in creation of a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_contents(MPI_Datatype \fIdatatype\fP, int \fImax_integers\fP,
+	int \fImax_addresses\fP, int \fImax_datatypes\fP, int \fIarray_of_integers\fP[], MPI_Aint \fIarray_of_addresses\fP[], MPI_Datatype array_of_datatypes\fP[])
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_GET_CONTENTS(\fIDATATYPE, MAX_INTEGERS, MAX_ADDRESSES,
+		MAX_DATATYPES, ARRAY_OF_INTEGERS, ARRAY_OF_ADDRESSES,
+		ARRAY_OF_DATATYPES, IERROR\fP)
+	INTEGER	\fIDATATYPE, MAX_INTEGERS, MAX_ADDRESSES, MAX_DATATYPES\fP
+	INTEGER	\fIARRAY_OF_INTEGERS(*), ARRAY_OF_DATATYPES(*), IERROR\fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIARRAY_OF_ADDRESSES\fP(*) 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Get_contents(int \fImax_integers\fP, int \fImax_addresses\fP,
+	int \fImax_datatypes\fP, int \fIarray_of_integers\fP[],
+	MPI::Aint \fIarray_of_addresses\fP[],
+	MPI::Datatype \fIarray_of_datatypes\fP[]) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datatype
+Data type to access (handle).
+.TP 1i
+max_integers
+Number of elements in \fIarray_of_integers\fP (nonnegative integer).
+.TP 1i
+max_addresses
+Number of elements in \fIarray_of_addresses\fP (nonnegative integer).
+.TP 1i
+max_datatypes
+Number of elements in \fIarray_of_datatypes\fP (nonnegative integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+array_of_integers
+Contains integer arguments used in constructing \fIdatatype\fP (array of integers).
+.TP 1i
+array_of_addresses
+Contains address arguments used in constructing \fIdatatype\fP (array of integers).
+.TP 1i
+array_of_datatypes
+Contains data-type arguments used in constructing \fIdatatype\fP (array of integers).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+For the given data type, MPI_Type_get_envelope returns information on the number and type of input arguments used in the call that created the data type. The number-of-arguments values returned can be used to provide sufficiently large arrays in the decoding routine MPI_Type_get_contents. This call and the meaning of the returned values is described below. The combiner reflects the MPI data type constructor call that was used in creating \fIdatatype\fP. 
+
+The parameter \fIdatatype\fP must be a predefined unnamed or a derived data type. The call is erroneous if \fIdatatype\fP is a predefined named data type.
+.sp
+The values given for \fImax_integers\fP, \fImax_addresses\fP, and \fImax_datatypes\fP must be at least as large as the value returned in \fInum_integers\fP, \fInum_addresses\fP, and \fInum_datatypes\fP, respectively, in the call MPI_Type_get_envelope for the same \fIdatatype\fP argument.
+.sp
+The data types returned in \fIarray_of_datatypes\fP are handles to data-type objects that are equivalent to the data types used in the original construction call. If these were derived data types, then the returned data types are new data-type objects, and the user is responsible for freeing these datatypes with MPI_Type_free. If these were predefined data types, then the returned data type is equal to that (constant) predefined data type and cannot be freed. 
+.sp
+The committed state of returned derived data types is undefined, that is, the data types may or may not be committed. Furthermore, the content of attributes of returned data types is undefined. 
+.sp
+Note that MPI_Type_get_contents can be invoked with a data-type argument that was constructed using MPI_Type_create_f90_real, MPI_Type_create_f90_integer, or MPI_Type_create_f90_complex (an unnamed predefined data type). In such a case, an empty \fIarray_of_datatypes\fP is returned. 
+.sp
+In the MPI-1 data-type constructor calls, the address arguments in Fortran are of type INTEGER. In the new MPI-2 calls, the address arguments are of type INTEGER(KIND=MPI ADDRESS KIND). The call MPI_Type_get_contents returns all addresses in an argument of type INTEGER(KIND=MPI ADDRESS KIND). This is true even if the old MPI-1 calls were used. Thus, the location of values returned can be thought of as being returned by the C bindings. It can also be determined by examining the new MPI-2 calls for data-type constructors for the deprecated MPI-1 calls that involve addresses. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIARRAY_OF_ADDRESSES\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIARRAY_OF_ADDRESSES\fP(*)
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Type_get_envelope
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_envelope.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_envelope.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_envelope.3	(revision 97)
@@ -0,0 +1,105 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_get_envelope 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_envelope\fP \- Returns informaion about input arguments associated with a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_envelope(MPI_Datatype \fIdatatype\fP, int *\fInum_integers\fP,
+	int *\fInum_addresses\fP, int *\fInum_datatypes\fP, int *\fIcombiner\fP)
+
+.SH Fortran Syntax 
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_GET_ENVELOPE(\fIDATATYPE, NUM_INTEGERS, NUM_ADDRESSES,
+		NUM_DATATYPES, COMBINER, IERROR\fP)
+	INTEGER	\fIDATATYPE, NUM_INTEGERS, NUM_ADDRESSES\fP
+	INTEGER	\fINUM_DATATYPES, COMBINER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Get_envelope(int& \fInum_integers\fP, 
+	int& \fInum_addresses\fP, int& \fInum_datatypes\fP, 
+	int& \fIcombiner\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype
+Data type to access (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+num_integers
+Number of input integers used in the call constructing \fIcombiner\fP (nonnegative integer).
+.TP 1i
+num_addresses
+Number of input addresses used in the call constructing \fIcombiner\fP (nonnegative integer).
+.TP 1i
+num_datatypes
+Number of input data types used in the call constructing \fIcombiner\fP (nonnegative integer).
+.TP 1i
+combiner
+Combiner (state). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+For the given data type, MPI_Type_get_envelope returns information on the number and type of input arguments used in teh call that created the data type. The number-of-arguments values returned can be used to provide sufficiently large arrays in the decoding routine MPI_Type_get_contents. This call and the meaning of the returned values is described below. The combiner reflects the MPI data type constructor call that was used in creating \fIdatatype\fP. 
+
+.SH NOTES
+.ft R
+These are the values that can be returned in \fIcombiner\fP and their associated calls:
+.sp
+.nf
+Values                          Associated Calls
+
+MPI_COMBINER_NAMED              a named predefined data type
+MPI_COMBINER_DUP                MPI_Type_dup
+MPI_COMBINER_CONTIGUOUS         MPI_Type_contiguous
+MPI_COMBINER_VECTOR             MPI_Type_vector
+MPI_COMBINER_HVECTOR_INTEGER    MPI_Type_hvector from Fortran
+MPI_COMBINER_HVECTOR            MPI_Type_hvector from C or C++
+                                  and MPI_Type_create for
+                                  all languages
+MPI_COMBINER_INDEXED            MPI_Type_indexed
+MPI_COMBINER_HINDEXED_INTEGER   MPI_Type_hindexed from Fortran
+MPI_COMBINER_HINDEXED           MPI_Type_hindexed from C or C++
+                                  and MPI_Type_create_hindexed
+                                  for all languages
+MPI_COMBINER_INDEXED_BLOCK      MPI_Type_create_indexed_block
+MPI_COMBINER_STRUCT_INTEGER     MPI_Type_struct from Fortran
+MPI_COMBINER_STRUCT             MPI_Type_struct from C or C++
+                                  and MPI_Type_create_struct
+                                  for all languages
+MPI_COMBINER_SUBARRAY           MPI_Type_create_subarray
+MPI_COMBINER_DARRAY             MPI_Type_create_darray
+MPI_COMBINER_F90_REAL           MPI_Type_create_f90_real
+MPI_COMBINER_F90_COMPLEX        MPI_Type_create_f90_complex
+MPI_COMBINER_F90_INTEGER        MPI_Type_create_f90_integer
+MPI_COMBINER_RESIZED            MPI_Type_create_resized
+.fi
+.sp
+If \fIcombiner\fP is MPI_COMBINER_NAMED, then \fIdatatype\fP is a named predefined data type.
+.sp
+The actual arguments used in the creation call for a data type can be obtained from the call MPI_Type_get_contents. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft r
+MPI_Type_get_contents
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_extent.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_extent.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_extent.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_get_extent 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_extent\fP \- Returns the lower bound and extent of a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_extent(MPI_Datatype \fIdatatype\fP, MPI_Aint\fI *lb\fP, 
+	MPI_Aint *\fIextent\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_GET_EXTENT(\fIDATATYPE, LB, EXTENT, IERROR\fP)
+	INTEGER	\fIDATATYPE, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fILB, EXTENT\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Get_extent(MPI::Aint& \fIlb\fP, MPI::Aint& \fIextent\fP) 
+	const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Data type (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+lb
+Lower bound of data type (integer).
+.TP 1i
+extent      
+Data type extent (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_get_extent returns the lower bound and the extent of \fIdatatype\fP.
+
+.SH NOTE
+.ft R
+Use of MPI_Type_get_extent is strongly recommended over the old MPI-1 functions MPI_Type_extent and MPI_Type_lb. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fILB\fP and \fIEXTENT\fP arguments only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fILB\fP
+or
+     INTEGER*MPI_ADDRESS_KIND \fIEXTENT\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_name.3	(revision 97)
@@ -0,0 +1,61 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_get_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_name\fP \- Gets the name of a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_name(MPI_Datatype \fItype\fP, char *\fItype_name\fP, 
+	int *\fIresultlen\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+TYPE_GET_NAME(\fITYPE, TYPE_NAME, RESULTLEN, IERROR\fP)
+	INTEGER	\fITYPE, RESULTLEN, IERROR \fP
+	CHARACTER*(*) \fITYPE_NAME\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Get_name(char* \fItype_name\fP, int& \fIresultlen\fP) 
+	const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+type
+Data type whose name is to be returned (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+type_name
+The name previously stored on the data type, or an empty string if not such name exists (string).
+.TP 1i
+resultlen
+Length of returned name (integer).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_get_name returns the printable identifier associated with an MPI data type. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_set_name
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_true_extent.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_true_extent.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_get_true_extent.3	(revision 97)
@@ -0,0 +1,76 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_get_true_extent 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_get_true_extent\fP \- Returns the true lower bound and extent of a data type's corresponding typemap, ignoring MPI_UB and MPI_LB markers. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_get_true_extent(MPI_Datatype \fIdatatype\fP, 
+	MPI_Aint *\fItrue_lb\fP, MPI_Aint *\fItrue_extent\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_GET_TRUE_EXTENT(\fIDATATYPE, TRUE_LB, TRUE_EXTENT, IERROR\fP)
+	INTEGER	\fIDATATYPE, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fITRUE_LB, TRUE_EXTENT\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Get_true_extent(MPI::Aint& \fItrue_lb\fP, 
+	MPI::Aint& \fItrue_extent\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Data type for which information is wanted (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+true_lb
+True lower bound of data type (integer).
+.TP 1i
+true_extent
+True size of data type (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The \fItrue_lb\fP parameter returns the offset of the lowest unit of store that is addressed by the data type, that is, the lower bound of the corresponding typemap, ignoring MPI_LB markers. The \fItrue_extent\fP parameter returns the true size of the data type, that is, the extent of the corresponding typemap, ignoring MPI_LB and MPI_UB markers, and performing no rounding for alignment. 
+.sp
+The \fItrue_extent\fP is the minimum number of bytes of memory necessary to hold a data type, uncompressed.
+.sp
+See Section 4.14.3 of the MPI-2 standard for more detailed definitions of these parameters in relation to the typemap. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fITRUE_LB\fP and \fITRUE_EXTENT\fP arguments only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fITRUE_LB\fP
+or
+     INTEGER*MPI_ADDRESS_KIND \fITRUE_EXTENT\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hindexed.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hindexed.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hindexed.3	(revision 97)
@@ -0,0 +1,93 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_hindexed 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_hindexed\fP \- Creates an indexed datatype with offsets in bytes -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_hindexed(int \fIcount\fP, int\fI *array_of_blocklengths\fP,
+	MPI_Aint\fI *array_of_displacements\fP, MPI_Datatype\fI oldtype\fP,
+	MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_HINDEXED(\fICOUNT, ARRAY_OF_BLOCKLENGTHS,
+		ARRAY_OF_DISPLACEMENTS, OLDTYPE, NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_BLOCKLENGTHS(*)\fP
+	INTEGER	\fIARRAY_OF_DISPLACEMENTS(*), OLDTYPE, NEWTYPE\fP
+	INTEGER	\fIIERROR\fP
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count      
+Number of blocks -- also number of entries in array_of_displacements  and
+array_of_blocklengths  (integer).
+.TP 1i
+array_of_blocklengths
+Number of elements in each block (array of nonnegative integers).
+.TP 1i
+array_of_displacements 
+Byte displacement of each block (array of integer).
+.TP 1i
+oldtype      
+Old datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Use MPI_Type_create_hindexed instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+The function is identical to MPI_Type_indexed, except that block displacements in array_of_displacements are specified in bytes, rather than in multiples of the oldtype extent. 
+.sp
+Assume that oldtype has type map
+.sp
+.nf
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1))},
+.fi
+.sp
+with extent ex. Let B be the array_of_blocklength argument and D be the
+array_of_displacements argument. The newly created datatype has 
+.nf
+n x S^count-1
+    (i=0)        B[i]  entries:
+
+  {(type(0), disp(0) + D[0]),...,(type(n-1), disp(n-1) + D[0]),...,
+  (type(0), disp(0) + (D[0] + B[0]-1)* ex),..., 
+  type(n-1), disp(n-1) + (D[0]+ B[0]-1)* ex),...,
+  (type(0), disp(0) + D[count-1]),...,(type(n-1), disp(n-1) + D[count-1]),...,
+  (type(0), disp(0) +  D[count-1] + (B[count-1] -1)* ex),...,
+  (type(n-1), disp(n-1) + D[count-1] + (B[count-1] -1)* ex)}
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Type_create_hindexed
+.br
+MPI_Type_indexed
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hvector.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hvector.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_hvector.3	(revision 97)
@@ -0,0 +1,92 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_hvector 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_hvector\fP \- Creates a vector (strided) datatype with offset in bytes -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_hvector(int \fIcount\fP, int\fI blocklength\fP, MPI_Aint\fI stride\fP,
+	MPI_Datatype\fI oldtype\fP, MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_HVECTOR(\fICOUNT, BLOCKLENGTH, STRIDE, OLDTYPE, NEWTYPE,
+		IERROR\fP)
+	INTEGER	\fICOUNT, BLOCKLENGTH, STRIDE, OLDTYPE\fP 
+	INTEGER	\fINEWTYPE, IERROR\fP 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count     
+Number of blocks (nonnegative integer).
+.TP 1i
+blocklength      
+Number of elements in each block (nonnegative integer).
+.TP 1i
+stride      
+Number of bytes between start of each block (integer).
+.TP 1i
+oldtype      
+Old datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Use MPI_Type_create_hvector instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+The function MPI_Type_hvector is identical to MPI_Type_vector, except that
+stride is given in bytes, rather than in elements. The use for both types
+of vector constructors is illustrated in the examples in Section 3.12.7 of the MPI-1 Standard. 
+.sp
+Assume that oldtype has type map
+.sp
+.nf
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1))}
+.fi
+.sp
+with extent ex. Let bl be the blocklength. The newly created datatype has a type map with   count * bl * n  entries:
+.sp
+.nf
+  {(type(0), disp(0)), ..., (type(n-1), disp(n-1)),
+  (type(0), disp(0) + ex), ..., (type(n-1), disp(n-1) + ex), 
+  ..., (type(0), disp(0) + (bl -1) * ex),...,(type(n-1), 
+  disp(n-1) + (bl -1) * ex), (type(0), disp(0) + stride), 
+  ...,(type(n-1), disp(n-1) + stride), ..., (type(0), 
+  disp(0) + stride + (bl - 1) * ex), ..., (type(n-1), 
+  disp(n-1) + stride + (bl -1) * ex), ..., (type(0), 
+  disp(0) + stride * (count -1)), ...,(type(n-1), 
+  disp(n-1) + stride * (count -1)), ..., (type(0), 
+  disp(0) + stride * (count -1) + (bl -1) * ex), ..., 
+  (type(n-1), disp(n-1) + stride * (count -1) + (bl -1) * ex)}
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_hvector
+.br
+MPI_Type_vector
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_indexed.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_indexed.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_indexed.3	(revision 97)
@@ -0,0 +1,121 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_indexed 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_indexed\fP \- Creates an indexed datatype.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_indexed(int \fIcount\fP, int\fI *array_of_blocklengths\fP,
+	int\fI *array_of_displacements\fP, MPI_Datatype\fI oldtype\fP,
+	MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_INDEXED(\fICOUNT, ARRAY_OF_BLOCKLENGTHS,
+		ARRAY_OF_DISPLACEMENTS, OLDTYPE, NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_BLOCKLENGTHS(*)\fP
+	INTEGER	\fIARRAY_OF_DISPLACEMENTS(*), OLDTYPE, NEWTYPE\fP
+	INTEGER	\fIIERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Datatype Datatype::Create_indexed(int \fIcount\fP, 
+	const int \fIarray_of_blocklengths\fP[], 
+	const int \fIarray_of_displacements\fP[]) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count      
+Number of blocks -- also number of entries in array_of_displacements and
+array_of_blocklengths (nonnegative integer).
+.TP 1i
+array_of_blocklengths 
+Number of elements per block (array of nonnegative integers).
+.TP 1i
+array_of_displacements 
+Displacement for each block, in multiples of oldtype extent (array of
+integer).
+.TP 1i
+oldtype      
+Old datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Type_indexed allows replication of an old datatype into a sequence of blocks (each block is a concatenation of the old datatype), where each block can contain a different number of copies and have a different displacement. All block displacements are multiples of the old data type's extent. 
+.sp
+
+\fBExample:\fP Let oldtype have type map {(double, 0), (char, 8)}, with extent 16. Let  B = (3, 1) and let D = (4, 0).  A call to MPI_Type_indexed(2, B, D, oldtype, newtype) returns a datatype with type map 
+.sp
+.nf
+    {(double, 64), (char, 72), (double, 80), (char, 88), 
+    (double, 96), (char, 104), 
+    (double, 0), (char, 8)}
+.fi
+.sp
+That is, three copies of the old type starting at displacement 4 x 16 = 64, and one copy starting at displacement 0.
+.sp
+In general, assume that oldtype has type map 
+.sp
+.nf
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1))},
+.fi
+.sp
+with extent ex. Let B be the array_of_blocklength argument and D be the
+array_of_displacements argument. The newly created datatype has 
+.br
+.nf
+n x S ^count-1
+    i = 0           B[i]  entries:
+
+.nf
+    {(type(0), disp(0) + D[0]* ex), ..., 
+    (type(n-1), disp(n-1) + D[0]* ex), ...,
+    (type(0), disp(0) + (D[0] + B[0]-1)* ex), ..., 
+    (type(n-1), disp(n-1) + (D[0]+ B[0]-1)* ex), ...,
+    (type(0), disp(0) + D[count-1]* ex), ..., 
+    (type(n-1), disp(n-1) + D[count-1]* ex), ...,
+    (type(0), disp(0) +  (D[count-1] + B[count-1] -1)* ex), ...,
+    (type(n-1), disp(n-1) + (D[count-1] + B[count-1] -1)* ex)}
+.fi
+.sp
+A call to MPI_Type_vector(count, blocklength, stride, oldtype, newtype) is equivalent to a call to MPI_Type_indexed(count, B, D, oldtype, newtype) where 
+.sp
+.nf
+    D[j] = j * stride, j = 0,..., count-1    
+
+and
+
+    B[j] = blocklength, j = 0, .., count-1
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_hindexed
+.br
+MPI_Type_hindexed
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_lb.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_lb.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_lb.3	(revision 97)
@@ -0,0 +1,87 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_lb 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_lb\fP \- Returns the lower bound of a data type. This may differ from zero if the type was constructed using MPI_LB. Use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_lb(MPI_Datatype \fIdatatype\fP, MPI_Aint\fI *displacement\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_LB(\fIDATATYPE, DISPLACEMENT, IERROR\fP)
+	INTEGER	\fIDATATYPE, DISPLACEMENT, IERROR\fP 
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype     
+Datatype (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+displacement      
+Displacement of lower bound from origin, in bytes (integer).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Type_get_extent instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+MPI_Type_lb returns the lower bound of a data type. 
+.sp
+The "pseudo-datatypes," MPI_LB and MPI_UB, can be used, respectively, to mark the lower bound (or the upper bound) of a datatype. These pseudo-datatypes occupy no space (extent (MPI_LB) = extent (MPI_UB) =0. They do not affect the size or count of a datatype, and do not affect the context of a message created with this datatype. However, they do affect the definition of the extent of a datatype and, therefore, affect the outcome of a replication of this datatype by a datatype constructor.
+.sp
+In general, if
+.sp
+.nf
+    Typemap = {(type0, disp0), ..., (type(n-1), disp(n-1)}
+.fi
+.sp
+then the lower bound of Typemap is defined to be 
+.nf
+
+                  (min(j) disp(j)                          if no entry has
+    lb(Typemap) = (                                        basic type lb
+                  (min(j) {disp(j) such that type(j) = lb} otherwise
+
+.fi
+Similarly, the upper bound of Typemap is defined to be
+.nf
+
+                  (max(j) disp(j) + sizeof((type(j)) + e   if no entry has
+    ub(Typemap) = (                                        basic type ub
+                  (max(j) {disp(j) such that type(j) = ub} otherwise
+
+Then 
+
+    extent(Typemap) = ub(Typemap) - lb(Typemap)
+.fi
+.sp
+If type(i) requires alignment to a byte address that is a multiple of k(i),
+then e is the least nonnegative increment needed to round extent(Typemap) to the next multiple of max(i) k(i). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_get_extent
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_match_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_match_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_match_size.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_match_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+
+\fBMPI_Type_match_size\fP \- Returns an MPI datatype of a given type and size
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_match_size(int \fItypeclass\fP, int \fIsize\fP,
+	MPI_Datatype *\fItype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_MATCH_SIZE(\fITYPECLASS, SIZE, TYPE, IERROR\fP)
+	INTEGER	\fITYPECLASS, SIZE, TYPE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Datatype MPI::Match_size(int \fItypeclass\fP, int \fIsize\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+typeclass
+Generic type specifier (integer).
+.ft R
+.TP 1i
+size
+Size, in bytes, of representation (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+type
+Datatype with correct type and size (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function returns an MPI datatype matching a local variable of type
+(\fItypeclass\fP, \fIsize\fP). The returned type is a reference
+(handle) to a predefined named datatype, not a duplicate. This type
+cannot be freed.
+.sp
+The value of \fItypeclass\fR may be set to one of MPI_TYPECLASS_REAL,
+MPI_TYPECLASS_INTEGER, or MPI_TYPECLASS_COMPLEX, corresponding to the
+desired datatype.
+.sp
+MPI_type_match_size can be used to obtain a size-specific type that
+matches a Fortran numeric intrinsic type: first call MPI_Sizeof to
+compute the variable size, then call MPI_Type_match_size to find a
+suitable datatype. In C and C++, use the sizeof builtin instead of
+MPI_Sizeof.
+.sp
+It is erroneous to specify a size not supported by the compiler.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Sizeof
+MPI_Type_get_extent
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_attr.3	(revision 97)
@@ -0,0 +1,75 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_set_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_set_attr\fP \- Sets a key value/attribute pair to a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_set_attr(MPI_Datatype \fItype\fP, int \fItype_keyval\fP, 
+	void *\fIattribute_val\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_SET_ATTR(\fITYPE, TYPE_KEYVAL, ATTRIBUTE_VAL, IERROR\fP)
+	INTEGER	\fITYPE, TYPE_KEYVAL, IERROR\fP
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Set_attr(int \fItype_keyval\fP, const void* \fIattribute_val\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+type
+Data type to which attribute will be attached (handle). 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+type_keyval
+Key value (integer).
+.TP 1i
+attribute_val
+Attribute value.
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+For the given data type, MPI_Type_set_attr sets the key value to the value of the specified attribute. 
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_get_attr
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_set_name.3	(revision 97)
@@ -0,0 +1,60 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\"Copyright (c) 1996 Thinking Machines
+.TH MPI_Type_set_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_set_name\fP \- Sets the name of a data type. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_set_name(MPI_Datatype \fItype\fP, char *\fItype_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_SET_NAME(\fITYPE, TYPE_NAME, IERROR\fP)
+	INTEGER	\fITYPE, IERROR\fP
+	CHARACTER*(*) \fITYPE_NAME\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Set_name(const char* \fItype_name\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+type
+Data type for which the identifier is to be set (handle).
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+type_name
+The character string remembered as the name (string). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_set_name associates a printable identifier with an MPI data type. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_get_name
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_size.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_size.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_size.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_size 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_size\fP \- Returns the number of bytes occupied by entries in a data type.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_size(MPI_Datatype \fIdatatype\fP, int\fI *size\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_SIZE(\fIDATATYPE, SIZE, IERROR\fP)
+	INTEGER	\fIDATATYPE, SIZE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+int Datatype::Get_size() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Datatype (handle).
+.sp
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+size     
+Datatype size (integer).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Type_size returns the total size, in bytes, of the entries in the type signature associated with datatype; i.e., the total size of the data in a message that would be created with this datatype. Entries that occur multiple times in the datatype are counted with their multiplicity.  
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_struct.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_struct.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_struct.3	(revision 97)
@@ -0,0 +1,113 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_struct 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_struct\fP \- Creates a \fIstruct\fP data type -- use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_struct(int \fIcount\fP, int\fI *array_of_blocklengths\fP,
+	MPI_Aint\fI *array_of_displacements\fP, MPI_Datatype\fI *array_of_types\fP,
+	MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_STRUCT(\fICOUNT, ARRAY_OF_BLOCKLENGTHS,
+		ARRAY_OF_DISPLACEMENTS, ARRAY_OF_TYPES,
+		NEWTYPE, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_BLOCKLENGTHS(*)\fP
+	INTEGER	\fIARRAY_OF_DISPLACEMENTS(*)\fP
+	INTEGER	\fIARRAY_OF_TYPES(*), NEWTYPE, IERROR\fP 
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count     
+Number of blocks (integer)  also number of entries in arrays
+array_of_types,  array_of_displacements, and array_of_blocklengths.
+.TP 1i
+array_of_blocklengths
+Number of elements in each block (array).
+.TP 1i
+array_of_displacements
+Byte displacement of each block (array).
+.TP 1i
+array_of_types    
+Type of elements in each block (array of handles to datatype objects).
+.sp
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Use MPI_Type_create_struct instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+MPI_Type_struct is the most general type constructor. It further generalizes MPI_Type_hindexed in that it allows each block to consist of replications of different datatypes.  
+.sp
+\fBExample:\fP Let type1 have type map 
+.nf
+
+    {(double, 0), (char, 8)}
+
+.fi
+with extent 16. Let B = (2, 1, 3), D = (0, 16, 26), and T = (MPI_FLOAT, type1, MPI_CHAR). Then a call to MPI_Type_struct(3, B, D, T, newtype) returns a datatype with type map
+.nf
+
+    {(float, 0), (float,4), (double, 16), (char, 24), 
+    (char, 26), (char, 27), (char, 28)}
+
+.fi
+That is, two copies of MPI_FLOAT starting at 0, followed by one copy of type1 starting at 16, followed by three copies of MPI_CHAR, starting at 26. (We assume that a float occupies 4 bytes.) 
+.sp
+For more information, see section 3.12.1 of the MPI-1.1 Standard.
+
+.SH NOTES
+If an upperbound is set explicitly by using the MPI datatype MPI_UB, the corresponding index must be positive.
+.sp
+The MPI-1 Standard originally made vague statements about padding and alignment; this was intended to allow the simple definition of structures that could be sent with a count greater than one. For example, 
+.nf
+    struct {int a; char b;} foo;
+.fi
+may have 
+.nf
+    sizeof(foo) = sizeof(int) + sizeof(char); 
+.fi
+defining the extent of a datatype as including an epsilon, which would have allowed an implementation to make the extent an MPI datatype for this structure equal to 2*sizeof(int). However, since different systems might define different paddings, a clarification to the standard made epsilon zero. Thus, if you define a structure datatype and wish to send or receive multiple items, you should explicitly include an MPI_UB entry as the last member of the structure.  For example, the following code can be used for the structure foo:
+.nf
+
+    blen[0] = 1; indices[0] = 0; oldtypes[0] = MPI_INT;
+    blen[1] = 1; indices[1] = &foo.b - &foo; oldtypes[1] = MPI_CHAR;
+    blen[2] = 1; indices[2] = sizeof(foo); oldtypes[2] = MPI_UB;
+    MPI_Type_struct( 3, blen, indices, oldtypes, &newtype );
+
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_struct
+.br
+MPI_Type_create_hindexed
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_ub.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_ub.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_ub.3	(revision 97)
@@ -0,0 +1,89 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_ub 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_ub\fP \- Returns the upper bound of a datatype. This will differ from zero if the type was constructed using MPI_UB. The upper bound will take into account any alignment considerations. Use of this routine is deprecated.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_ub(MPI_Datatype \fIdatatype\fP, MPI_Aint\fI *displacement\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_UB(\fIDATATYPE, DISPLACEMENT, IERROR\fP)
+	INTEGER	\fIDATATYPE, DISPLACEMENT, IERROR\fP 
+
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+datatype      
+Datatype (handle).
+.sp
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+displacement      
+Displacement of upper bound from origin, in bytes (integer).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Note that use of this routine is \fIdeprecated\fP as of MPI-2. Please use MPI_Type_get_extent instead. 
+.sp
+This deprecated routine is not available in C++. 
+.sp
+MPI_Type_ub returns the lower bound of a data type. 
+.sp
+The "pseudo-datatypes," MPI_LB and MPI_UB, can be used, respectively, to mark the upper bound (or the lower bound) of a datatype. These pseudo-datatypes occupy no space (extent (MPI_LB) = extent (MPI_UB) =0. They do not affect the size or count of a datatype, and do not affect the context of a message created with this datatype. However, they do affect the definition of the extent of a datatype and, therefore, affect the outcome of a replication of this datatype by a datatype constructor.
+.sp
+In general, if
+.nf
+
+    Typemap = {(type(0), disp(0)), ..., (type(n-1), disp(n-1))}
+
+.fi
+then the lower bound of Typemap is defined to be 
+.nf
+
+                  (min(j) disp(j)                          if no entry has
+    lb(Typemap) = (                                        basic type lb
+                  (min(j) {disp(j) such that type(j) = lb} otherwise
+
+.fi
+Similarly, the upper bound of Typemap is defined to be
+.nf
+
+                  (max(j) disp(j) + sizeof(type(j) = lb}   if no entry has
+    ub(Typemap) = (                                        basic type ub
+                  (max(j) {disp(j) such that type(j) = ub} otherwise
+
+Then 
+.nf
+
+    extent(Typemap) = ub(Typemap) - lb(Typemap)
+
+.fi
+If type(i) requires alignment to a byte address that is a multiple of k(i), then e is the least nonnegative increment needed to round extent(Typemap) to the next multiple of max(i) k(i). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_get_extent
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_vector.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_vector.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Type_vector.3	(revision 97)
@@ -0,0 +1,115 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Type_vector 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Type_vector\fP \- Creates a vector (strided) datatype.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Type_vector(int \fIcount\fP, int\fI blocklength\fP, int\fI stride\fP,
+	MPI_Datatype\fI oldtype\fP, MPI_Datatype\fI *newtype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_TYPE_VECTOR(\fICOUNT, BLOCKLENGTH, STRIDE, OLDTYPE, NEWTYPE,
+		IERROR\fP)
+	INTEGER	\fICOUNT, BLOCKLENGTH, STRIDE, OLDTYPE\fP 
+	INTEGER	\fINEWTYPE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+Datatype Datatype::Create_vector(int \fIcount\fP, int \fIblocklength\fP, 
+	int \fIstride\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count     
+Number of blocks (nonnegative integer).
+.TP 1i
+blocklength      
+Number of elements in each block (nonnegative integer).
+.TP 1i
+stride      
+Number of elements between start of each block (integer).
+.TP 1i
+oldtype      
+Old datatype (handle).
+.sp
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+newtype      
+New datatype (handle).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The function MPI_Type_vector is a general constructor that allows replication of a datatype into locations that consist of equally spaced blocks. Each block is obtained by concatenating the same number of copies of the old datatype. The spacing between blocks is a multiple of the extent of the old datatype.
+.sp
+\fBExample 1:\fP Assume, again, that oldtype has type map {(double, 0), (char, 8)}, with extent 16. A call to  MPI_Type_vector(2, 3, 4, oldtype, newtype) will create the datatype with type map 
+.nf
+    {(double, 0), (char, 8), (double, 16), (char, 24), 
+    (double, 32), (char, 40), 
+    (double, 64), (char, 72), 
+    (double, 80), (char, 88), (double, 96), (char, 104)}
+.fi
+.sp
+That is, two blocks with three copies each of the old type, with a stride of 4 elements (4 x 6 bytes) between the blocks.   
+.sp
+\fBExample 2:\fP  A call to  MPI_Type_vector(3, 1, -2, oldtype, newtype) will create the datatype
+.nf
+
+    {(double, 0), (char, 8), (double, -32), (char, -24), 
+    (double, -64), (char, -56)}
+
+.fi
+In general, assume that oldtype has type map
+.nf
+
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1))},
+
+.fi
+with extent ex. Let bl be the blocklength. The newly created datatype has a type map with count x bl x  n entries:
+.nf
+
+    {(type(0), disp(0)), ..., (type(n-1), disp(n-1)),
+    (type(0), disp(0) + ex), ..., (type(n-1), disp(n-1) + ex), ...,
+    (type(0), disp(0) + (bl -1) * ex),..., 
+    (type(n-1), disp(n-1) + (bl -1)* ex),
+    (type(0), disp(0) + stride * ex),..., (type(n-1), 
+    disp(n-1) + stride * ex), ...,
+    (type(0), disp(0) + (stride + bl - 1) * ex), ..., 
+    (type(n-1), disp(n-1) + (stride + bl -1) * ex), ...,
+    (type(0), disp(0) + stride * (count -1) * ex), ...,
+    (type(n-1), disp(n-1) + stride * (count -1) * ex), ...,
+    (type(0), disp(0) + (stride * (count -1) + bl -1) * ex), ...,
+    (type(n-1), disp(n-1) + (stride * (count -1) + bl -1) * ex)}
+
+.fi
+A call to MPI_Type_contiguous(count, oldtype, newtype) is equivalent to a call to MPI_Type_vector(count, 1, 1, oldtype, newtype), or to a call to MPI_Type_vector(1, count, n, oldtype, newtype), n arbitrary.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Type_create_hvector
+.br
+MPI_Type_hvector
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack.3	(revision 97)
@@ -0,0 +1,96 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Unpack 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Unpack\fP \- Unpacks a datatype into contiguous memory.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Unpack(void *\fIinbuf\fP, int\fI insize\fP, int\fI *position\fP, 
+	void\fI *outbuf\fP, int\fI outcount\fP, MPI_Datatype\fI datatype\fP, 
+	MPI_Comm\fI comm\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_UNPACK(\fIINBUF, INSIZE, POSITION, OUTBUF, OUTCOUNT, 
+	DATATYPE, COMM, IERROR\fP)
+	<type>	\fIINBUF(*), OUTBUF(*)\fP
+	INTEGER	\fIINSIZE, POSITION, OUTCOUNT, DATATYPE, 
+		COMM, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Datatype::Unpack(const void* \fIinbuf\fP, int \fIinsize\fP, 
+	void *\fIoutbuf\fP, int \fIoutcount\fP, int& \fIposition\fP, 
+	const Comm& \fIcomm\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+inbuf      
+Input buffer start (choice).
+.TP 1i
+insize      
+Size of input buffer, in bytes (integer).
+.TP 1i
+outcount      
+Number of items to be unpacked (integer).
+.TP 1i
+datatype      
+Datatype of each output data item (handle).
+.TP 1i
+comm      
+Communicator for packed message (handle).
+.sp
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+position      
+Current position in bytes (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outbuf      
+Output buffer start (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Unpacks a message into the receive buffer specified by outbuf, outcount, datatype from the buffer space specified by inbuf and insize. The output buffer can be any communication buffer allowed in MPI_Recv. The input buffer is a contiguous storage area containing insize bytes, starting at address inbuf. The input value of position is the first location in the input buffer occupied by the packed message. \fIposition\fP is incremented by the size of the packed message, so that the output value of position is the first location in the input buffer after the locations occupied by the message that was unpacked. \fIcomm\fP is the communicator used to receive the packed message. 
+
+.SH NOTES
+Note the difference between MPI_Recv and MPI_Unpack: In MPI_Recv, the \fIcount\fP argument specifies the maximum number of items that can be received. The actual number of items received is determined by the length of the incoming message. In MPI_Unpack, the count argument specifies the actual number of items that are to be unpacked; the "size" of the corresponding message is the increment in position. The reason for this change is that the "incoming message size" is not predetermined since the user decides how much to unpack; nor is it easy to determine the "message size" from the number of items to be unpacked.
+.sp
+To understand the behavior of pack and unpack, it is convenient to think of the data part of a message as being the sequence obtained by concatenating the successive values sent in that message. The pack operation stores this sequence in the buffer space, as if sending the message to that buffer. The unpack operation retrieves this sequence from buffer space, as if receiving a message from that buffer. (It is helpful to think of internal Fortran files or sscanf in C for a similar function.) 
+.sp
+Several messages can be successively packed into one packing unit. This is effected by several successive related calls to MPI_Pack, where the first call provides position = 0, and each successive call inputs the value of position that was output by the previous call, and the same values for outbuf, outcount, and comm. This packing unit now contains the equivalent information that would have been stored in a message by one send call with a send buffer that is the "concatenation" of the individual send buffers.
+.sp
+A packing unit can be sent using type MPI_Packed. Any point-to-point or collective communication function can be used to move the sequence of bytes that forms the packing unit from one process to another. This packing unit can now be received using any receive operation, with any datatype: The type-matching rules are relaxed for messages sent with type MPI_Packed.  
+.sp
+A message sent with any type (including MPI_Packed) can be received using the type MPI_Packed. Such a message can then be unpacked by calls to MPI_Unpack.
+.sp
+A packing unit (or a message created by a regular, "typed" send) can be unpacked into several successive messages. This is effected by several successive related calls to MPI_Unpack, where the first call provides position = 0, and each successive call inputs the value of position that was output by the previous call, and the same values for inbuf, insize, and comm.
+.sp
+The concatenation of two packing units is not necessarily a packing unit; nor is a substring of a packing unit necessarily a packing unit. Thus, one cannot concatenate two packing units and then unpack the result as one packing unit; nor can one unpack a substring of a packing unit as a separate packing unit. Each packing unit that was created by a related sequence of pack calls or by a regular send must be unpacked as a unit, by a sequence of related unpack calls. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+.ft R
+MPI_Pack
+.br
+MPI_Pack_size
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack_external.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack_external.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpack_external.3	(revision 97)
@@ -0,0 +1,170 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Unpack_external 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Unpack_external\fP \- Reads data from a portable format
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Unpack_external(char *\fIdatarep\fP, void *\fIinbuf\fP,
+	MPI_Aint \fIinsize\fP, MPI_Aint *\fIposition\fP,
+	void *\fIoutbuf\fP, int \fIoutcount\fP,
+	MPI_Datatype \fIdatatype\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_UNPACK_EXTERNAL(\fIDATAREP, INBUF, INSIZE, POSITION,
+	OUTBUF, OUTCOUNT, DATATYPE, IERROR\fP)
+
+	INTEGER		\fIOUTCOUNT, DATATYPE, IERROR\fP
+	INTEGER (KIND=MPI_ADDRESS_KIND) \fIINSIZE, POSITION\fP
+	CHARACTER*(*)	\fIDATAREP\fP
+	<type>		\fIINBUF(*), OUTBUF(*)\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Datatype::Unpack_external(const char* \fIdatarep\fP,
+	const void* \fIinbuf\fP, MPI::Aint \fIinsize\fP,
+	MPI_Aint& \fIposition\fP, void *\fIoutbuf\fP,
+	int \fIoutcount\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+datarep
+Data Representation (string).
+.ft R
+.TP 1i
+inbuf      
+Input buffer start (choice).
+.TP 1i
+insize      
+Size of input buffer, in bytes (integer).
+.TP 1i
+outcount      
+Number of items to be unpacked (integer).
+.TP 1i
+datatype      
+Datatype of each output data item (handle).
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+position      
+Current position in buffer, in bytes (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outbuf      
+Output buffer start (choice).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Unpack_external unpacks data from the external32 format, a
+universal data representation defined by the MPI Forum. This format is
+useful for exchanging data between MPI implementations, or when
+writing data to a file.
+.sp
+The input buffer is a contiguous storage area pointed to by
+\fIinbuf\fP containing \fIinsize\fP bytes. The output buffer can be
+any communication buffer allowed in MPI_Recv, and is specified by
+\fIoutbuf\fP, \fIoutcount\fP, and \fIdatatype\fP.
+.sp
+The input value of \fIposition\fP is the first position in \fIinbuf\fP
+to be read for unpacking (measured in bytes, not elements, relative to
+the start of the buffer). When the function returns, \fIposition\fP is
+incremented by the size of the packed message, so that it points to
+the first location in \fIinbuf\fP following the message that was
+unpacked. This way it may be used as input to a subsequent call to
+MPI_Unpack_external.
+
+.SH NOTES
+.ft R
+Note the difference between MPI_Recv and MPI_Unpack_external: In
+MPI_Recv, the \fIcount\fP argument specifies the maximum number of
+items that can be received. In MPI_Unpack_external, the \fIoutcount\fP
+argument specifies the actual number of items that are to be
+unpacked. With a regular receive operation, the incoming message size
+determines the number of components that will be received. With
+MPI_Unpack_external, it is up to the user to specify how many
+components to unpack, since the user may wish to unpack the received
+message multiple times into various buffers.
+.sp
+To understand the behavior of pack and unpack, it is convenient to
+think of the data part of a message as being the sequence obtained by
+concatenating the successive values sent in that message. The pack
+operation stores this sequence in the buffer space, as if sending the
+message to that buffer. The unpack operation retrieves this sequence
+from buffer space, as if receiving a message from that buffer. (It is
+helpful to think of internal Fortran files or sscanf in C for a
+similar function.)
+.sp
+Several messages can be successively packed into one packing
+unit. This is effected by several successive related calls to
+MPI_Pack_external, where the first call provides \fIposition\fP=0,
+and each successive call inputs the value of \fIposition\fP that was
+output by the previous call, along with the same values for
+\fIoutbuf\fP and \fIoutcount\fP. This packing unit now contains the
+equivalent information that would have been stored in a message by one
+send call with a send buffer that is the "concatenation" of the
+individual send buffers.
+.sp
+A packing unit can be sent using type MPI_PACKED. Any point-to-point
+or collective communication function can be used to move the sequence
+of bytes that forms the packing unit from one process to another. This
+packing unit can now be received using any receive operation, with any
+datatype: The type-matching rules are relaxed for messages sent with
+type MPI_PACKED.
+.sp
+A packing unit can be unpacked into several successive messages. This
+is effected by several successive related calls to
+MPI_Unpack_external, where the first call provides \fIposition\fP=0,
+and each successive call inputs the value of position that was output
+by the previous call, and the same values for \fIinbuf\fP and
+\fIinsize\fP.
+.sp
+The concatenation of two packing units is not necessarily a packing
+unit; nor is a substring of a packing unit necessarily a packing
+unit. Thus, one cannot concatenate two packing units and then unpack
+the result as one packing unit; nor can one unpack a substring of a
+packing unit as a separate packing unit. Each packing unit that was
+created by a related sequence of pack calls must be unpacked as a unit
+by a sequence of related unpack calls.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error.
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Pack_external
+MPI_Pack_external_size
+MPI_Recv
+sscanf(3C)
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpublish_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpublish_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Unpublish_name.3	(revision 97)
@@ -0,0 +1,122 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Unpublish_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+.nf
+\fBMPI_Unpublish_name\fP \- Unpublishes a service name
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Unpublish_name(char *\fIservice_name\fP, MPI_Info \fIinfo\fP,
+	char *\fIport_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_UNPUBLISH_NAME(\fISERVICE_NAME, INFO, PORT_NAME, IERROR\fP)
+	CHARACTER*(*)	\fISERVICE_NAME, PORT_NAME\fP
+	INTEGER		\fIINFO, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Unpublish_name(const char* \fIservice_name\fP, const MPI::Info& \fIinfo\fP,
+	char* \fIport_name\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+service_name
+A service name (string).
+.TP 1.4i
+info
+Options to the name service functions (handle).
+.ft R
+.TP 1.4i
+port_name
+A port name (string).
+
+.SH OUTPUT PARAMETER
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer).
+
+.SH DESCRIPTION
+.ft R
+This routine removes the pair (\fIservice_name, port_name\fP) so that
+applications may no longer retrieve \fIport_name\fP by calling
+MPI_Lookup_name. It is an error to unpublish a \fIservice_name\fP
+that was not published via MPI_Publish_name. Both the \fIservice_name\fP
+and \fIport_name\fP arguments to MPI_Unpublish_name must be identical
+to the arguments to the previous call to MPI_Publish_name.
+
+.SH INFO ARGUMENTS
+The following keys for \fIinfo\fP are recognized:
+.sp
+.sp
+.nf
+Key                   Type      Description
+---                   ----      -----------
+
+ompi_global_scope     bool      If set to true, unpublish the name from
+                                the global scope.  Unpublish from the local
+                                scope otherwise.  See the NAME SCOPE
+                                section for more details.
+
+.fi
+
+.sp 
+\fIbool\fP info keys are actually strings but are evaluated as
+follows: if the string value is a number, it is converted to an
+integer and cast to a boolean (meaning that zero integers are false
+and non-zero values are true).  If the string value is
+(case-insensitive) "yes" or "true", the boolean is true.  If the
+string value is (case-insensitive) "no" or "false", the boolean is
+false.  All other string values are unrecognized, and therefore false.
+.PP
+If no info key is provided, the function will first check to see if a
+global server has been specified and is available. If so, then the
+unpublish function will default to global scope first, followed by local. Otherwise,
+the data will default to unpublish with local scope.
+
+.SH NAME SCOPE
+Open MPI supports two name scopes: \fIglobal\fP and \fIlocal\fP. Local scope
+values are placed in a data store located on the mpirun of the calling
+process' job, while global scope values reside on a central server. Calls
+to MPI_Unpublish_name must correctly specify the scope to be used in
+finding the value to be removed. The function will return an error if
+the specified service name is not found on the indicated location.
+.sp
+For a more detailed description of scoping rules, please see the MPI_Publish_name
+man page.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does not
+guarantee that an MPI program can continue past an error. 
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Publish_name
+MPI_Lookup_name
+MPI_Open_port
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wait.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wait.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wait.3	(revision 97)
@@ -0,0 +1,113 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Wait 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Wait\fP \- Waits for an MPI send or receive to complete.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Wait(MPI_Request *\fIrequest\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WAIT(\fIREQUEST, STATUS, IERROR\fP)
+	INTEGER	\fIREQUEST, STATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void Request::Wait(Status& \fIstatus\fP)
+
+void Request::Wait() 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+request      
+Request (handle).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+status      
+Status object (status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+A call to MPI_Wait returns when the operation identified by request is complete. If the communication object associated with this request was created by a nonblocking send or receive call, then the object is deallocated by the call to MPI_Wait and the request handle is set to MPI_REQUEST_NULL. 
+.sp
+The call returns, in status, information on the completed operation. The content of the status object for a receive operation can be accessed as described in Section 3.2.5 of the MPI-1 Standard, "Return Status." The status object for a send operation may be queried by a call to MPI_Test_cancelled (see Section 3.8 of the MPI-1 Standard, "Probe and Cancel").
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+.sp
+One is allowed to call MPI_Wait with a null or inactive request argument. In this case the operation returns immediately with empty status. 
+
+.SH NOTES
+Successful return of MPI_Wait after an MPI_Ibsend implies that the user send buffer can be reused  i.e., data has been sent out or copied into a buffer attached with MPI_Buffer_attach. Note that, at this point, we can no longer cancel the send (for more information, see Section 3.8 of the MPI-1 Standard, "Probe and Cancel"). If a matching receive is never posted, then the buffer cannot be freed. This runs somewhat counter to the stated goal of MPI_Cancel (always being able to free program space that was committed to the communication subsystem). 
+.sp
+Example: Simple usage of nonblocking operations and  MPI_Wait. 
+.sp
+.nf
+    CALL MPI_COMM_RANK(comm, rank, ierr) 
+    IF(rank.EQ.0) THEN 
+        CALL MPI_ISEND(a(1), 10, MPI_REAL, 1, tag, comm, request, ierr) 
+        **** do some computation **** 
+        CALL MPI_WAIT(request, status, ierr) 
+    ELSE 
+        CALL MPI_IRECV(a(1), 15, MPI_REAL, 0, tag, comm, request, ierr) 
+        **** do some computation **** 
+        CALL MPI_WAIT(request, status, ierr) 
+    END IF 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler, MPI_File_set_errhandler, or
+MPI_Win_set_errhandler (depending on the type of MPI handle that
+generated the request); the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does
+not guarantee that an MPI program can continue past an error.
+.sp
+Note that per MPI-1 section 3.2.5, MPI exceptions on requests passed
+to MPI_WAIT do not set the status.MPI_ERROR field in the returned
+status.  The error code is passed to the back-end error handler
+and may be passed back to the caller through the return value of
+MPI_WAIT if the back-end error handler returns it.  The
+pre-defined MPI error handler MPI_ERRORS_RETURN exhibits this
+behavior, for example.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitall.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitall.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitall.3	(revision 97)
@@ -0,0 +1,107 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Waitall 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Waitall\fP \- Waits for all given communications to complete.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Waitall(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP,
+	MPI_Status \fI*array_of_statuses\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WAITALL(\fICOUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_REQUESTS(*)\fP
+	INTEGER	\fIARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void Request::Waitall(int \fIcount\fP, Request \fIarray_of_requests\fP[], 
+	Status \fIarray_of_statuses\fP[]) 
+
+static void Request::Waitall(int \fIcount\fP, Request \fIarray_of_requests\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count      
+Lists length (integer).
+.TP 1i
+array_of_requests
+Array of requests (array of handles).
+.sp
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+array_of_statuses 
+Array of status objects (array of status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Blocks until all communication operations associated with active handles in the list complete, and returns the status of all these operations (this includes the case where no handle in the list is active). Both arrays have the same number of valid entries. The ith entry in array_of_statuses is set to the return status of the ith operation. Requests that were created by nonblocking communication operations are deallocated, and the corresponding handles in the array are set to MPI_REQUEST_NULL. The list may contain null or inactive handles. The call sets to empty the status of each such entry. 
+.sp
+The error-free execution of MPI_Waitall(count, array_of_requests, array_of_statuses) has the same effect as the execution of  MPI_Wait(&array_of_request[i], &array_of_statuses[i]), for i=0,...,count-1, in some arbitrary order. MPI_Waitall with an array of length 1 is equivalent to MPI_Wait.
+.sp
+When one or more of the communications completed by a call to MPI_Waitall fail, it is desirable to return specific information on each communication. The function MPI_Waitall will return in such case the error code MPI_ERR_IN_STATUS and will set the error field of each status to a specific error code. This code will be MPI_SUCCESS if the specific communication completed; it will be another specific error code if it failed; or it can be MPI_ERR_PENDING if it has neither failed nor completed. The function MPI_Waitall will return MPI_SUCCESS if no request had an error, or will return another error code if it failed for other reasons (such as invalid arguments). In such cases, it will not update the error fields of the statuses. 
+.sp
+If your application does not need to examine the \fIarray_of_statuses\fP field, you can save resources by using the predefined constant MPI_STATUSES_IGNORE can be used as a special value for the \fIarray_of_statuses\fP argument. 
+
+.SH ERRORS
+For each invocation of MPI_Waitall, if one or more requests generate
+an MPI exception, only the \fIfirst\fP MPI request that caused an
+exception will be passed to its corresponding error handler.  No other
+error handlers will be invoked (even if multiple requests generated
+exceptions).  However, \fIall\fP requests that generate an exception
+will have a relevant error code set in the corresponding
+status.MPI_ERROR field (unless MPI_IGNORE_STATUSES was used).
+.sp
+The default error handler aborts the MPI job, except for I/O function
+errors. The error handler may be changed with MPI_Comm_set_errhandler,
+MPI_File_set_errhandler, or MPI_Win_set_errhandler (depending on the
+type of MPI handle that generated the MPI request); the predefined
+error handler MPI_ERRORS_RETURN may be used to cause error values to
+be returned. Note that MPI does not guarantee that an MPI program can
+continue past an error.
+.sp
+If the invoked error handler allows MPI_Waitall to return to the
+caller, the value MPI_ERR_IN_STATUS will be returned in the C and
+Fortran bindings.  In C++, if the predefined error handler
+MPI::ERRORS_THROW_EXCEPTIONS is used, the value MPI::ERR_IN_STATUS
+will be contained in the MPI::Exception object.  The MPI_ERROR field
+can then be examined in the array of returned statuses to determine
+exactly which request(s) generated an exception.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitany
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitany.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitany.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitany.3	(revision 97)
@@ -0,0 +1,133 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Waitany 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Waitany\fP \- Waits for any specified send or receive to complete.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Waitany(int \fIcount\fP, MPI_Request\fI *array_of_requests\fP,
+	int \fI*index\fP, MPI_Status\fI *status\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WAITANY(\fICOUNT, ARRAY_OF_REQUESTS, INDEX, STATUS, IERROR\fP)
+	INTEGER	\fICOUNT, ARRAY_OF_REQUESTS(*), INDEX\fP
+	INTEGER	\fISTATUS(MPI_STATUS_SIZE), IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int Request::Waitany(int \fIcount\fP, Request 
+	\fIarray_of_requests\fP[], Status& \fIstatus\fP)
+
+static int Request::Waitany(int \fIcount\fP, Request \fIarray_of_requests\fP[])
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+count      
+List length (integer).
+.TP 1i
+array_of_requests
+Array of requests (array of handles).
+.sp
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+index      
+Index of handle for operation that completed (integer). In the range 0 to
+count-1.  In Fortran, the range is 1 to count.
+.TP 1i
+status      
+Status object (status).
+.sp
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+A call to MPI_Waitany can be used to wait for the completion of one out of several requests. 
+.sp
+The array_of_requests list may contain null or inactive handles. If the list contains no active handles (list has length zero or all entries are null or inactive), then the call returns immediately with index = MPI_UNDEFINED, and an empty status. 
+.sp
+The execution of MPI_Waitany(count, array_of_requests, index, status) has the same effect as the execution of MPI_Wait(&array_of_requests[i], status), where i is the value returned by index (unless the value of index is MPI_UNDEFINED). MPI_Waitany with an array containing one active entry is equivalent to MPI_Wait.
+.sp
+If your application does not need to examine the \fIstatus\fP field, you can save resources by using the predefined constant MPI_STATUS_IGNORE as a special value for the \fIstatus\fP argument. 
+.sp
+\fBExample:\fR Client-server code (starvation can occur). 
+.sp
+.nf
+    CALL MPI_COMM_SIZE(comm, size, ierr) 
+    CALL MPI_COMM_RANK(comm, rank, ierr) 
+    IF(rank .GT 0) THEN         ! client code 
+        DO WHILE(.TRUE.) 
+           CALL MPI_ISEND(a, n, MPI_REAL, 0, tag, comm, request, ierr) 
+           CALL MPI_WAIT(request, status, ierr) 
+        END DO 
+    ELSE         ! rank=0 -- server code 
+           DO i=1, size-1 
+              CALL MPI_IRECV(a(1,i), n, MPI_REAL, i tag, 
+                       comm, request_list(i), ierr) 
+           END DO 
+           DO WHILE(.TRUE.) 
+              CALL MPI_WAITANY(size-1, request_list, index, status, ierr) 
+              CALL DO_SERVICE(a(1,index))  ! handle one message 
+              CALL MPI_IRECV(a(1, index), n, MPI_REAL, index, tag, 
+                        comm, request_list(index), ierr) 
+           END DO 
+    END IF 
+.fi
+.sp
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for
+I/O function errors. The error handler may be changed with
+MPI_Comm_set_errhandler, MPI_File_set_errhandler, or
+MPI_Win_set_errhandler (depending on the type of MPI handle that
+generated the request); the predefined error handler MPI_ERRORS_RETURN
+may be used to cause error values to be returned. Note that MPI does
+not guarantee that an MPI program can continue past an error.
+.sp
+Note that per MPI-1 section 3.2.5, MPI exceptions on requests passed
+to MPI_WAITANY do not set the status.MPI_ERROR field in the returned
+status.  The error code is passed to the back-end error handler and
+may be passed back to the caller through the return value of
+MPI_WAITANY if the back-end error handler returns it.  The pre-defined
+MPI error handler MPI_ERRORS_RETURN exhibits this behavior, for
+example.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitsome
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitsome.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitsome.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Waitsome.3	(revision 97)
@@ -0,0 +1,149 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Waitsome 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Waitsome\fP \- Waits for some given communications to complete.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Waitsome(int \fIincount\fP, MPI_Request \fI*array_of_requests\fP,
+	int\fI *outcount\fP, int\fI *array_of_indices\fP,
+	MPI_Status \fI*array_of_statuses\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WAITSOME(\fIINCOUNT, ARRAY_OF_REQUESTS, OUTCOUNT,
+		ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERROR\fP)
+	INTEGER	\fIINCOUNT, ARRAY_OF_REQUESTS(*), OUTCOUNT\fP
+	INTEGER	\fIARRAY_OF_INDICES(*)\fP
+	INTEGER	\fIARRAY_OF_STATUSES(MPI_STATUS_SIZE*)\fP
+	INTEGER	\fIIERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int Request::Waitsome(int \fIincount\fP, Request 
+	\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[], Status \fIarray_of_statuses\fP[]) 
+
+static int Request::Waitsome(int \fIincount\fP, Request 
+	\fIarray_of_requests\fP[], int \fIarray_of_indices\fP[]) 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+incount     
+Length of array_of_requests (integer).
+.TP 1i
+array_of_requests 
+Array of requests (array of handles).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+outcount      
+Number of completed requests (integer).
+.TP 1i
+array_of_indices 
+Array of indices of operations that completed (array of integers).
+.TP 1i
+array_of_statuses 
+Array of status objects for operations that completed (array of status).
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Waits until at least one of the operations associated with active handles in the list have completed. Returns in outcount the number of requests from the list array_of_requests that have completed. Returns in the first outcount locations of the array array_of_indices the indices of these operations (index within the array array_of_requests; the array is indexed from 0 in C and from 1 in Fortran). Returns in the first outcount locations of the array array_of_status the status for these completed operations. If a request that completed was allocated by a nonblocking communication call, then it is deallocated, and the associated handle is set to MPI_REQUEST_NULL.  
+.sp
+If the list contains no active handles, then the call returns immediately with outcount = MPI_UNDEFINED. 
+.sp
+When one or more of the communications completed by MPI_Waitsome fails, then it is desirable to return specific information on each communication. The arguments outcount, array_of_indices, and array_of_statuses will be adjusted to indicate completion of all communications that have succeeded or failed. The call will return the error code MPI_ERR_IN_STATUS and the error field of each status returned will be set to indicate success or to indicate the specific error that occurred. The call will return MPI_SUCCESS if no request resulted in an error, and will return another error code if it failed for other reasons (such as invalid arguments). In such cases, it will not update the error fields of the statuses.  
+.sp
+If your application does not need to examine the \fIarray_of_statuses\fP field, you can save resources by using the predefined constant MPI_STATUSES_IGNORE can be used as a special value for the \fIarray_of_statuses\fP argument. 
+.sp    
+\fBExample:\fR Same code as the example in the MPI_Waitany man page, but using MPI_Waitsome. 
+.sp
+.nf
+    CALL MPI_COMM_SIZE(comm, size, ierr) 
+    CALL MPI_COMM_RANK(comm, rank, ierr) 
+    IF(rank .GT. 0) THEN         ! client code 
+        DO WHILE(.TRUE.) 
+           CALL MPI_ISEND(a, n, MPI_REAL, 0, tag, comm, request, ierr) 
+           CALL MPI_WAIT(request, status, ierr) 
+        END DO 
+    ELSE         ! rank=0 -- server code 
+        DO i=1, size-1 
+           CALL MPI_IRECV(a(1,i), n, MPI_REAL, i, tag, 
+                          comm, requests(i), ierr) 
+        END DO 
+        DO WHILE(.TRUE.) 
+           CALL MPI_WAITSOME(size, request_list, numdone, 
+                            indices, statuses, ierr) 
+           DO i=1, numdone 
+              CALL DO_SERVICE(a(1, indices(i))) 
+              CALL MPI_IRECV(a(1, indices(i)), n, MPI_REAL, 0, tag, 
+                           comm, requests(indices(i)), ierr) 
+           END DO 
+        END DO 
+    END IF
+.fi
+.sp
+.SH NOTES
+.ft R
+The array of indices are in the range 0 to incount-1 for C and in the range 1 to incount for Fortran. 
+
+.SH ERRORS
+For each invocation of MPI_Waitsome, if one or more requests generate
+an MPI exception, only the \fIfirst\fP MPI request that caused an
+exception will be passed to its corresponding error handler.  No other
+error handlers will be invoked (even if multiple requests generated
+exceptions).  However, \fIall\fP requests that generate an exception
+will have a relevant error code set in the corresponding
+status.MPI_ERROR field (unless MPI_IGNORE_STATUSES was used).
+.sp
+The default error handler aborts the MPI job, except for I/O function
+errors. The error handler may be changed with MPI_Comm_set_errhandler,
+MPI_File_set_errhandler, or MPI_Win_set_errhandler (depending on the
+type of MPI handle that generated the MPI request); the predefined
+error handler MPI_ERRORS_RETURN may be used to cause error values to
+be returned. Note that MPI does not guarantee that an MPI program can
+continue past an error.
+.sp
+If the invoked error handler allows MPI_Waitsome to return to the
+caller, the value MPI_ERR_IN_STATUS will be returned in the C and
+Fortran bindings.  In C++, if the predefined error handler
+MPI::ERRORS_THROW_EXCEPTIONS is used, the value MPI::ERR_IN_STATUS
+will be contained in the MPI::Exception object.  The MPI_ERROR field
+can then be examined in the array of returned statuses to determine
+exactly which request(s) generated an exception.
+
+.SH SEE ALSO
+.ft R
+.sp
+MPI_Comm_set_errhandler
+.br
+MPI_File_set_errhandler
+.br
+MPI_Test
+.br
+MPI_Testall
+.br
+MPI_Testany
+.br
+MPI_Testsome
+.br
+MPI_Wait
+.br
+MPI_Waitall
+.br
+MPI_Waitany
+.br
+MPI_Win_set_errhandler
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_c2f.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_c2f.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_c2f.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_call_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_call_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_call_errhandler.3	(revision 97)
@@ -0,0 +1,73 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_call_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+
+.SH NAME
+\fBMPI_Win_call_errhandler\fP \- Passes the supplied error code to the
+error handler assigned to a window
+
+.SH SYNTAX
+.ft R
+
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_call_errhandler(MPI_Win \fIwin\fP, int \fIerrorcode\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_CALL_ERRHANDLER(\fIWIN, ERRORCODE, IERROR\fP) 
+	INTEGER	\fIWIN, ERRORCODE, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Call_errhandler(int \fIerrorcode\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1.4i
+win
+Window with error handler (handle).
+.ft R
+.TP 1.4i
+errorcode
+MPI error code (integer).
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1.4i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+This function invokes the error handler assigned to the window
+\fIwin\fP with the supplied error code \fIerrorcode\fP. If the error
+handler was successfully called, the process is not aborted, and the
+error handler returns, this function returns MPI_SUCCESS.
+
+.SH NOTES
+.ft R
+Users should note that the default error handler is
+MPI_ERRORS_ARE_FATAL. Thus, calling this function will abort the
+window processes if the default error handler has not been changed for
+this window.
+
+.SH ERRORS
+.ft R
+Almost all MPI routines return an error value; C routines as
+the value of the function and Fortran routines in the last argument. C++
+functions do not return errors. If the default error handler is set to
+MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism
+will be used to throw an MPI:Exception object.
+.sp
+See the MPI man page for a full list of MPI error codes.
+
+.SH SEE ALSO
+.ft R
+.nf
+MPI_Win_create_errhandler
+MPI_Win_set_errhandler
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_complete.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_complete.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_complete.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_complete 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_complete\fP \- Completes an RMA access epoch on \fIwin\fP started by a call to MPI_Win_start
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Win_complete(MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_COMPLETE(WIN, IERROR)
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Complete() const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win
+Window object (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_complete is a one-sided MPI communication synchronization call, completing an RMA access epoch on \fIwin\fP started by a call to MPI_Win_start. MPI_Win_complete enforces the completion of preceding RMA calls at the origin and not at the target. A put or accumulate call may not have completed at the target when it has completed at the origin.
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Win_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_start
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create.3	(revision 97)
@@ -0,0 +1,103 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_create 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_create\fP \- One-sided MPI call that returns a window object for RMA operations.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Win_create(void *\fIbase\fP, MPI_Aint \fIsize\fP, int \fIdisp_unit\fP, 
+	MPI_Info \fIinfo\fP, MPI_Comm \fIcomm\fP, MPI_Win *\fIwin\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_CREATE(\fIBASE, SIZE, DISP_UNIT, INFO, COMM, WIN, IERROR\fP)
+	<type> \fIBASE\fP(*)
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fISIZE\fP
+	INTEGER \fIDISP_UNIT, INFO, COMM, WIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Win MPI::Win::Create(const void* \fIbase\fP, 
+	MPI::Aint \fIsize\fP, int \fIdisp_unit\fP, const 
+	MPI::Info& \fIinfo\fP, const MPI::Intracomm& \fIcomm\fP)
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+base
+Initial address of window (choice).
+.TP 1i
+size
+Size of window in bytes (nonnegative integer).
+.TP 1i
+disp_unit
+Local unit size for displacements, in bytes (positive integer).
+.TP 1i
+info
+Info argument (handle).
+.TP 1i
+comm
+Communicator (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+win
+Window object returned by the call (handle). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_create is a one-sided MPI communication collective call executed by all processes in the group of \fIcomm\fP. It returns a window object that can be used by these processes to perform RMA operations. Each process specifies a window of existing memory that it exposes to RMA accesses by the processes in the group of \fIcomm\fP. The window consists of \fIsize\fP bytes, starting at address \fIbase\fP. A process may elect to expose no memory by specifying \fIsize\fP = 0.
+.sp
+If the \fIbase\fP value used by MPI_Win_create was allocated by MPI_Alloc_mem, the size of the window can be no larger than the value set by the MPI_ALLOC_MEM function.
+.sp
+The displacement unit argument is provided to facilitate address arithmetic in RMA operations: the target displacement argument of an RMA operation is scaled by the factor \fIdisp_unit\fP specified by the target process, at window creation.
+.sp
+The following info key is supported:
+.ft R
+.TP 1i
+no_locks 
+If MPI_Win_lock is called on a window created with this info key, the
+call will fail. If this info key is present, it is assumed that the
+local window is never locked, allowing several internal checks to be
+skipped, permitting a more efficient implementation.
+.sp 
+
+.SH NOTES
+Common choices for \fIdisp_unit\fP are 1 (no scaling), and (in C syntax) \fIsizeof(type)\fP, for a window that consists of an array of elements of type \fItype\fP. The later choice will allow one to use array indices in RMA calls, and have those scaled correctly to byte displacements, even in a heterogeneous environment. 
+.sp
+Use memory allocated by MPI_Alloc_mem to guarantee properly aligned window boundaries (such as word, double-word, cache line, page frame, and so on).
+.sp
+ 
+
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fISIZE\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fISIZE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+ 
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_errhandler.3	(revision 97)
@@ -0,0 +1,71 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_create_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_create_errhandler\fP \- Creates an error handler for a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_create_errhandler(MPI_Win_errhandler_fn *\fIfunction\fP, 
+	MPI_Errhandler *\fIerrhandler\fP) 
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_CREATE_ERRHANDLER(\fIFUNCTION, ERRHANDLER, IERROR\fP) 
+	EXTERNAL \fIFUNCTION\fP 
+	INTEGER \fIERRHANDLER, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static MPI::Errhandler MPI::Win::Create_errhandler(MPI::Win::
+	Errhandler_fn* \fIfunction\fP) 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+function
+User-defined error-handling procedure (function). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+MPI error handler (handle).
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_create_errhandler should be, in C, a function of type MPI_Win_errhandler_fn, which is defined as 
+.sp
+.nf
+typedef void MPI_Win_errhandler_fn(MPI Win *, int *, ...);
+.fi
+.sp
+The first argument is the window in use, the second is the error code to be returned. 
+.sp
+In Fortran, the user routine should be of the form:
+.sp
+.nf
+SUBROUTINE WIN_ERRHANDLER_FN(WIN, ERROR_CODE, ...)
+    INTEGER WIN, ERROR_CODE
+.fi
+.sp
+In C++, the user routine should be of the form:
+.sp
+.nf
+typedef void MPI::Win::Errhandler_fn(MPI::Win &, int *, ...);
+.fi
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_create_keyval.3	(revision 97)
@@ -0,0 +1,127 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_create_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_create_keyval\fP \- Creates a keyval for a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_create_keyval(MPI_Win_copy_attr_function *\fIwin_copy_attr_fn\fP, 
+	MPI_Win_delete_attr_function *\fIwin_delete_attr_fn\fP, 
+	int *\fIwin_keyval\fP, void *\fIextra_state\fP) 
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_CREATE_KEYVAL(\fIWIN_COPY_ATTR_FN, WIN_DELETE_ATTR_FN, 
+	WIN_KEYVAL, EXTRA_STATE, IERROR\fP) 
+	EXTERNAL \fIWIN_COPY_ATTR_FN, WIN_DELETE_ATTR_FN\fP 
+	INTEGER \fIWIN_KEYVAL, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static int MPI::Win::Create_keyval(MPI::Win::Copy_attr_function* 
+	\fIwin_copy_attr_fn\fP, 
+	MPI::Win::Delete_attr_function* \fIwin_delete_attr_fn\fP, 
+	void* \fIextra_state\fP) 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win_copy_attr_fn
+Copy callback function for \fIwin_keyval\fP (function).
+.TP 1i
+win_delete_attr_fn
+Delete callback function for \fIwin_keyval\fP (function). 
+.TP 1i
+extra_state
+Extra state for callback functions. 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+win_keyval
+Key value for future access (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+The argument \fIwin_copy_attr_fn\fP may be specified as MPI_WIN_NULL_COPY_FN or MPI_WIN_DUP_FN from either C, C++, or Fortran. MPI_WIN_NULL_COPY_FN is a function that serves only to return \fIflag\fP = 0 and MPI_SUCCESS. MPI_WIN_DUP_FN is a simple-minded copy function that sets \fIflag\fP = 1, returns the value of \fIattribute_val_in\fP in \fIattribute_val_out\fP, and returns MPI_SUCCESS. 
+.sp
+The argument \fIwin_delete_attr_fn\fP may be specified as MPI_WIN_NULL_DELETE_FN from either C, C++, or Fortran. MPI_WIN_NULL_DELETE_FN is a function that serves only to return MPI_SUCCESS. 
+.sp
+The C callback functions are:
+.sp
+.nf
+typedef int MPI_Win_copy_attr_function(MPI_Win \fIoldwin\fP, int \fIwin_keyval\fP, 
+             void *\fIextra_state\fP, void *\fIattribute_val_in\fP, 
+             void *\fIattribute_val_out\fP, int *\fIflag\fP); 
+.fi
+.sp
+and
+.sp
+.nf
+typedef int MPI_Win_delete_attr_function(MPI_Win \fIwin\fP, int \fIwin_keyval\fP, 
+             void *\fIattribute_val\fP, void *\fIextra_state\fP); 
+.fi
+.sp
+The Fortran callback functions are:
+.sp
+.nf
+SUBROUTINE WIN_COPY_ATTR_FN(\fIOLDWIN, WIN_KEYVAL, EXTRA_STATE, 
+	ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR\fP) 
+	INTEGER \fIOLDWIN, WIN_KEYVAL, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIEXTRA_STATE, ATTRIBUTE_VAL_IN, 
+		ATTRIBUTE_VAL_OUT\fP 
+	LOGICAL \fIFLAG\fP 
+.fi
+.sp
+and
+.sp
+.nf
+SUBROUTINE WIN_DELETE_ATTR_FN(\fIWIN, WIN_KEYVAL, ATTRIBUTE_VAL, 
+	EXTRA_STATE, IERROR\fP) 
+	INTEGER \fIWIN, WIN_KEYVAL, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL, EXTRA_STATE\fP 
+.fi
+.sp
+The C++ callbacks are:
+.sp
+.nf
+typedef int MPI::Win::Copy_attr_function(const MPI::Win& \fIoldwin\fP, 
+	int \fIwin_keyval\fP, void* \fIextra_state\fP, void* \fIattribute_val_in\fP, 
+	void* \fIattribute_val_out\fP, bool& \fIflag\fP); 
+.fi
+.sp
+and
+.sp
+.nf
+typedef int MPI::Win::Delete_attr_function(MPI::Win& \fIwin\fP, int \fIwin_keyval\fP, void* \fIattribute_val\fP, void* \fIextra_state\fP); 
+.fi
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIEXTRA_STATE\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIEXTRA_STATE\fP
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_delete_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_delete_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_delete_attr.3	(revision 97)
@@ -0,0 +1,48 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_delete_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_delete_attr\fP \- Deletes an attribute from a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_delete_attr(MPI_Win \fIwin\fP, int \fIwin_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_DELETE_ATTR(\fIWIN, WIN_KEYVAL, IERROR\fP) 
+	INTEGER \fIWIN, WIN_KEYVAL, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Delete_attr(int \fIwin_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window from which the attribute is deleted (handle). 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+win_keyval
+Key value (integer). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_f2c.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_f2c.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_f2c.3	(revision 97)
@@ -0,0 +1,1 @@
+.so man3/MPI_Comm_f2c.3
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_fence.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_fence.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_fence.3	(revision 97)
@@ -0,0 +1,66 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_fence 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_fence\fP \- Synchronizes RMA calls on a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_fence(int \fIassert\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_FENCE(\fIASSERT, WIN, IERROR\fP) 
+	INTEGER \fIASSERT, WIN, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Fence(int \fIassert\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+assert
+Program assertion (integer).
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_fence synchronizes RMA calls on \fIwin\fP. The call is collective on the group of \fIwin\fP. All RMA operations on \fIwin\fP originating at a given process and started before the fence call will complete at that process before the fence call returns. They will be completed at their target before the fence call returns at the target. RMA operations on \fIwin\fP started by a process after the fence call returns will access their target window only after MPI_Win_fence has been called by the target process. 
+.sp
+The call completes an RMA access epoch if it was preceded by another fence call and the local process issued RMA communication calls on \fIwin\fP between these two calls. The call completes an RMA exposure epoch if it was preceded by another fence call and the local window was the target of RMA accesses between these two calls. The call starts an RMA access epoch if it is followed by another fence call and by RMA communication calls issued between these two fence calls. The call starts an exposure epoch if it is followed by another fence call and the local window is the target of RMA accesses between these two fence calls. Thus, the fence call is equivalent to calls to a subset of \fIpost, start, complete, wait\fP. 
+.sp
+A fence call usually entails a barrier synchronization: a process completes a call to MPI_Win_fence only after all other processes in the group have entered their matching call. However, a call to MPI_Win_fence that is known not to end any epoch (in particular, a call with \fIassert\fP = MPI_MODE_NOPRECEDE) does not necessarily act as a barrier. 
+
+.SH NOTE
+Calls to MPI_Win_fence should both precede and follow calls to put, get or accumulate that are synchronized with fence calls. 
+.sp
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_create
+MPI_Win_start
+MPI_Win_post
+MPI_Win_complete
+MPI_Win_wait
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free.3	(revision 97)
@@ -0,0 +1,52 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_free 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_free\fP \- Frees the window object and returns a null handle.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_free(MPI_Win *\fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_FREE(\fIWIN, IERROR\fP)
+	INTEGER \fIWIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Free()
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_free frees the window object \fIwin\fP and returns a null handle (equal to MPI_WIN_NULL). This collective call is executed by all processes in the group associated with \fIwin\fP. It can be invoked by a process only after it has completed its involvement in RMA communications on window \fIwin\fP, that is, the process has called MPI_Win_fence, or called MPI_Win_unlock to match a previous call to MPI_Win_lock. When the call returns, the window memory can be freed.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_create
+MPI_Win_fence
+MPI_Win_unlock
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free_keyval.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free_keyval.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_free_keyval.3	(revision 97)
@@ -0,0 +1,42 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_free_keyval 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_free_keyval\fP \- Frees a window keyval.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_free_keyval(int *\fIwin_keyval\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_FREE_KEYVAL(\fIWIN_KEYVAL, IERROR\fP) 
+	INTEGER \fIWIN_KEYVAL, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+static void MPI::Win::Free_keyval(int& \fIwin_keyval\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win_keyval
+Key value (integer). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_attr.3	(revision 97)
@@ -0,0 +1,70 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_get_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_get_attr\fP \- Obtains the value of a window attribute.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_get_attr(MPI_Win \fIwin\fP, int \fIwin_keyval\fP, 
+	void *\fIattribute_val\fP, int *\fIflag\fP) 
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_GET_ATTR(\fIWIN, WIN_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR\fP) 
+	INTEGER \fIWIN, WIN_KEYVAL, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP 
+	LOGICAL \fIFLAG\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Win::Get_attr(int win_keyval, void* attribute_val) const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win
+Window to which the attribute is attached (handle). 
+.TP 1i
+win_keyval
+Key value (integer).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+attribute_val
+Attribute value, unless \fIag\fP = false
+.TP 1i
+flag
+False if no attribute is associated with the key (logical). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Obtains the value of a window attribute.
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP 
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_errhandler.3	(revision 97)
@@ -0,0 +1,50 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_get_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_get_errhandler\fP \- Retrieves the error handler currently associated with a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_get_errhandler(MPI_Win \fIwin\fP, MPI_Errhandler *\fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_GET_ERRHANDLER(\fIWIN, ERRHANDLER, IERROR\fP) 
+	INTEGER \fIWIN, ERRHANDLER, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Errhandler MPI::Win::Get_errhandler() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+errhandler
+Error handler currently associated with window (handle). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_get_errhandler retrieves the error handler currently associated with a window.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_group.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_group.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_group.3	(revision 97)
@@ -0,0 +1,49 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_get_group 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_get_group\fP \- Returns a duplicate of the group of the communicator used to create the window. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+MPI_Win_get_group(MPI_Win \fIwin\fP, MPI_Group *\fIgroup\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_GET_GROUP(\fIWIN, GROUP, IERROR\fP)
+	INTEGER \fIWIN, GROUP, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+MPI::Group MPI::Win::Get_group() const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+group
+Group of processes that share access to the window (handle). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_get_group returns a duplicate of the group of the communicator used to create the window associated with \fIwin\fP. The group is returned in \fIgroup\fP. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_get_name.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_get_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_get_name\fP \- Obtains the name of a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_get_name(MPI_Win \fIwin\fP, char *\fIwin_name\fP, int *\fIresultlen\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_GET_NAME(\fIWIN, WIN_NAME, RESULTLEN, IERROR\fP) 
+	INTEGER \fIWIN, RESULTLEN, IERROR\fP 
+	CHARACTER*(*) \fIWIN_NAME\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Get_name(char* \fIwin_name\fP, int& \fIresultlen\fP) const
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window whose name is to be returned (handle). 
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+win_name
+the Tame previously stored on the window, or an empty string if no such name exists (string). 
+.TP 1i
+resultlen
+Length of returned name (integer). 
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_lock.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_lock.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_lock.3	(revision 97)
@@ -0,0 +1,74 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_lock 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_lock\fP \- Starts an RMA access epoch locking access to a particular rank.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_lock(int \fIlock_type\fP, int \fIrank\fP, int \fIassert\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_LOCK(\fILOCK_TYPE, RANK, ASSERT, WIN, IERROR\fP) 
+	INTEGER \fILOCK_TYPE, RANK, ASSERT, WIN, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Lock(int \fIlock_type\fP, int \fIrank\fP, int \fIassert\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+lock_type
+Either MPI_LOCK_EXCLUSIVE or MPI_LOCK_SHARED (state).  
+.TP 1i
+rank
+Rank of locked window (nonnegative integer). 
+.TP 1i
+assert
+Program assertion (integer). 
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+Starts an RMA access epoch. Locks ensure that only the windows created by specific processes can be accessed by those processes (and by no other processes) during that epoch.
+.sp
+Locks are used to protect accesses to the locked target window effected by RMA calls issued between the lock and unlock call, and to protect local load/store accesses to a locked local window executed between the lock and unlock call. 
+Accesses that are protected by an exclusive lock will not be concurrent at the window site with other accesses to the same window that are lock protected. Accesses that are protected by a shared lock will not be concurrent at the window site with accesses protected by an exclusive lock to the same window. 
+.sp
+The \fIassert\fP argument is used to provide assertions on the context of the call that may be used for various optimizations. (See Section 6.4.4 of the MPI-2 Standard.) A value of \fIassert\fP = 0 is always valid.
+.sp
+.ft 
+.SH NOTES 
+.ft R
+In a client/server environment in which clients connect to
+a server and create windows that span both the client and the
+server, if a client or server that has obtained a lock
+on such a window and then terminates abnormally, the server or other clients
+may hang in a MPI_Win_lock call, failing to notice that the peer MPI job 
+has terminated.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH See also
+MPI_Win_unlock
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_post.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_post.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_post.3	(revision 97)
@@ -0,0 +1,60 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_post 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_post\fP \- Starts an RMA exposure epoch for the local window associated with \fIwin\fP
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_post(MPI_Group \fIgroup\fP, int assert, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_POST(\fIGROUP, ASSERT, WIN, IERROR\fP)
+	INTEGER GROUP, ASSERT, WIN, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Post(const MPI::Group& group, int assert) const
+
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+The group of origin processes (handle)
+.TP 1i
+assert
+Program assertion (integer)
+.TP 1i
+win
+Window object (handle)
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+
+Starts an RMA exposure epoch for the local window associated with \fIwin\fP. Only the processes belonging to \fIgroup\fP should access the window with RMA calls on \fIwin\fP during this epoch. Each process in \fIgroup\fP must issue a matching call to MPI_Win_start. MPI_Win_post does not block.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Win_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_start
+MPI_Win_wait
+.br
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_attr.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_attr.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_attr.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_set_attr 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_set_attr\fP \- Sets the value of a window attribute.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_set_attr(MPI_Win \fIwin\fP, int \fIwin_keyval\fP, void *\fIattribute_val\fP)
+
+.SH Fortran Syntax (see FORTRAN 77 NOTES)
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_SET_ATTR(\fIWIN, WIN_KEYVAL, ATTRIBUTE_VAL, IERROR\fP) 
+	INTEGER \fIWIN, WIN_KEYVAL, IERROR\fP 
+	INTEGER(KIND=MPI_ADDRESS_KIND) \fIATTRIBUTE_VAL\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Set_attr(int \fIwin_keyval\fP, const void* \fIattribute_val\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window to which attribute will be attached (handle). 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win_keyval
+Key value (integer). 
+.TP 1i
+attribute_val
+Attribute value. 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+.SH FORTRAN 77 NOTES
+.ft R
+The MPI standard prescribes portable Fortran syntax for
+the \fIATTRIBUTE_VAL\fP argument only for Fortran 90. FORTRAN 77
+users may use the non-portable syntax
+.sp
+.nf
+     INTEGER*MPI_ADDRESS_KIND \fIATTRIBUTE_VAL\fP 
+.fi
+.sp
+where MPI_ADDRESS_KIND is a constant defined in mpif.h
+and gives the length of the declared integer in bytes.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_errhandler.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_errhandler.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_errhandler.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_set_errhandler 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_set_errhandler\fP \- Attaches a new error handler to a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_set_errhandler(MPI_Win \fIwin\fP, MPI_Errhandler \fIerrhandler\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_SET_ERRHANDLER(\fIWIN, ERRHANDLER, IERROR\fP) 
+	INTEGER \fIWIN, ERRHANDLER, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Set_errhandler(const MPI::Errhandler& \fIerrhandler\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window (handle). 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+errhandler
+New error handler for window (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_set_errhandler attaches a new error handler to a window. The error handler must be either a predefined error handler or an error handler created by a call to MPI_Win_create_errhandler. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_name.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_name.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_set_name.3	(revision 97)
@@ -0,0 +1,53 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_set_name 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_set_name\fP \- Sets the name of a window.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_set_name(MPI_Win \fIwin\fP, char *\fIwin_name\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_SET_NAME(\fIWIN, WIN_NAME, IERROR\fP) 
+	INTEGER \fIWIN, IERROR\fP 
+	CHARACTER*(*) \fIWIN_NAME\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Set_name(const char* \fIwin_name\fP)
+
+.SH INPUT/OUTPUT PARAMETER
+.ft R
+.TP 1i
+win
+Window whose identifier is to be set (handle). 
+
+.SH INPUT PARAMETER
+.ft R
+.TP 1i
+win_name
+The character string used as the name (string). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_start.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_start.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_start.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_start 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_start\fP \- Starts an RMA access epoch for \fIwin\fP
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_start(MPI_Group \fIgroup\fP, int assert, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_START(\fIGROUP, ASSERT, WIN, IERROR\fP)
+	INTEGER GROUP, ASSERT, WIN, IERROR
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Start(const MPI::Group& group, int assert) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+group
+The group of target processes (handle).
+.TP 1i
+assert
+Program assertion (integer).
+.TP 1i
+win
+Window object (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_start is a one-sided MPI communication synchronization call that starts an RMA access epoch for \fIwin\fP. RMA calls issued on \fIwin\fP during this epoch must
+access only windows at processes in \fIgroup\fP. Each process in \fIgroup\fP must issue a matching
+call to MPI_Win_post. MPI_Win_start
+is allowed to block until the corresponding MPI_Win_post calls have been executed, but is not required to. 
+.sp
+The \fIassert\fP argument is used to provide assertions on the context of the call that may be used for various optimizations. (See Section 6.4.4 of the MPI-2 Standard.) A value of \fIassert\fP = 0 is always valid. The following assertion value is supported:
+.sp
+.TP 1i
+MPI_MODE_NOCHECK  
+When this value is passed in to this call, the library assumes that
+the post call on the target has been called and it is not necessary
+for the library to check to see if such a call has been made.
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Win_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_post
+MPI_Win_complete
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_test.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_test.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_test.3	(revision 97)
@@ -0,0 +1,62 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_test 3 "Dec 08, 2009" ""1.4"" "Open MPI"
+.SH NAME
+\fBMPI_Win_test\fP \- Attempts to complete an RMA exposure epoch; a nonblocking version of MPI_Win_wait
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_test(MPI_Win \fIwin\fP, int *\fIflag\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_TEST(\fI WIN, FLAG, IERROR\fP)
+	INTEGER \fI WIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+bool MPI::Win::Test() const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win
+Window object (handle)
+
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+.TP 1i
+flag
+The returning state of the test for epoch closure.
+
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_test is a one-sided MPI communication synchronization call, a 
+nonblocking version of MPI_Win_wait. It returns \fIag = true\fP if
+MPI_Win_wait would return, \fIag = false\fP otherwise. The effect of return of MPI_Win_test with \fIflag = true\fP is the same as the effect of a return of MPI_Win_wait. If \fIag = false\fP is returned, then the call has no visible effect.
+.sp
+Invoke MPI_Win_test only where MPI_Win_wait can be invoked. Once
+the call has returned \fIag = true\fP, it must not be invoked anew, until the window is posted anew.
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Win_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_post
+MPI_Win_wait
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_unlock.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_unlock.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_unlock.3	(revision 97)
@@ -0,0 +1,56 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_unlock 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_unlock\fP \- Completes an RMA access epoch started by a call to MPI_Win_lock. 
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_unlock(int \fIrank\fP, MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_UNLOCK(\fIRANK, WIN, IERROR\fP) 
+	INTEGER \fIRANK, WIN, IERROR\fP 
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Unlock(int \fIrank\fP) const
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+rank
+Rank of window (nonnegative integer). 
+.TP 1i
+win
+Window object (handle). 
+
+.SH OUTPUT PARAMETER
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_unlock completes an RMA access epoch started by a call to MPI_Win_lock. RMA operations issued during this period will have completed both at the origin and at the target when the call returns. 
+.sp
+Locks are used to protect accesses to the locked target window effected by RMA calls issued between the lock and unlock call, and to protect local load/store accesses to a locked local window executed between the lock and unlock call. Accesses that are protected by an exclusive lock will not be concurrent at the window site with other accesses to the same window that are lock protected. Accesses that are protected by a shared lock will not be concurrent at the window site with accesses protected by an exclusive lock to the same window. 
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.  
+
+.SH SEE ALSO
+MPI_Win_lock
+.br
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_wait.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_wait.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Win_wait.3	(revision 97)
@@ -0,0 +1,56 @@
+.\"Copyright 2007-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Win_wait 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Win_wait\fP \- Completes an RMA exposure epoch started by a call to MPI_Win_post on \fIwin\fP
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+int MPI_Win_wait(MPI_Win \fIwin\fP)
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+MPI_WIN_WAIT(\fI WIN, IERROR\fP)
+	INTEGER \fI WIN, IERROR\fP
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+void MPI::Win::Wait() const 
+
+.SH INPUT PARAMETERS
+.ft R
+.TP 1i
+win
+Window object (handle).
+
+.SH OUTPUT PARAMETERS
+.ft R
+.TP 1i
+IERROR
+Fortran only: Error status (integer). 
+
+.SH DESCRIPTION
+.ft R
+MPI_Win_wait is a one-sided MPI communication synchronization call that completes an RMA exposure epoch started by a call to MPI_Win_post on \fIwin\fP. This
+call matches calls to MPI_Win_complete(\fIwin\fP) issued by each of the processes that
+were granted access to the window during this epoch. The call to MPI_Win_wait blocks
+until all matching calls to MPI_Win_complete have occurred. This guarantees that all
+these origin processes have completed their RMA accesses to the local window. When the
+call returns, all these RMA accesses will have completed at the target window.
+
+
+.SH ERRORS
+Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
+.sp
+Before the error value is returned, the current MPI error handler is
+called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Win_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error. 
+ 
+.SH SEE ALSO
+MPI_Win_post
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtick.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtick.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtick.3	(revision 97)
@@ -0,0 +1,47 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Wtick 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Wtick\fP \- Returns the resolution of MPI_Wtime.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+double MPI_Wtick()
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+DOUBLE PRECISION MPI_WTICK()
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+double MPI::Wtick()
+
+.SH RETURN VALUE
+.ft R
+Time in seconds of resolution of MPI_Wtime.
+
+.SH DESCRIPTION
+.ft R
+MPI_Wtick returns the resolution of MPI_Wtime in seconds. That is, it
+returns, as a double-precision value, the number of seconds between
+successive clock ticks. For example, if the clock is implemented by
+the hardware as a counter that is incremented every millisecond, the
+value returned by MPI_Wtick should be 10^-3.
+.PP
+Note that on POSIX platforms, Open MPI should always return 10^-6 for
+MPI_Wtick.  The returned value may be different on Windows platforms.
+.PP
+
+.SH NOTE
+This function does not return an error value. Consequently, the result
+of calling it before MPI_Init or after MPI_Finalize is undefined.
+
+.SH SEE ALSO 
+.ft R
+.sp
+MPI_Wtime
Index: proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtime.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtime.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/MPI_Wtime.3	(revision 97)
@@ -0,0 +1,68 @@
+.\"Copyright 2006-2008 Sun Microsystems, Inc.
+.\" Copyright (c) 1996 Thinking Machines Corporation
+.TH MPI_Wtime 3 "Dec 08, 2009" "1.4" "Open MPI"
+.SH NAME
+\fBMPI_Wtime\fP \- Returns an elapsed time on the calling processor.
+
+.SH SYNTAX
+.ft R
+.SH C Syntax
+.nf
+#include <mpi.h>
+double MPI_Wtime()
+
+.SH Fortran Syntax
+.nf
+INCLUDE 'mpif.h'
+DOUBLE PRECISION MPI_WTIME()
+
+.SH C++ Syntax
+.nf
+#include <mpi.h>
+double MPI::Wtime()
+
+.SH RETURN VALUE
+.ft R
+Time in seconds since an arbitrary time in the past.
+
+.SH DESCRIPTION
+.ft R
+MPI_Wtime returns a floating-point number of seconds, representing elapsed wall-clock time since some time in the past. 
+.PP
+The "time in the past" is guaranteed not to change during the life of the process. The user is responsible for converting large numbers of seconds to other units if they are preferred. 
+.PP
+This function is portable (it returns seconds, not "ticks"), it allows high resolution, and carries no unnecessary baggage. One would use it like this: 
+.sp
+.nf
+    { 
+       double starttime, endtime; 
+       starttime = MPI_Wtime(); 
+        \&....  stuff to be timed  \&... 
+       endtime   = MPI_Wtime(); 
+       printf("That took %f seconds\\n",endtime-starttime); 
+    } 
+.fi
+.PP
+The times returned are local to the node that called them. There is no requirement that different nodes return the "same" time. 
+.SH NOTES 
+The boolean variable MPI_WTIME_IS_GLOBAL, a predefined attribute key that indicates whether clocks are synchronized, does not have a valid value in Open MPI, as the clocks are not guaranteed to be synchronized.
+
+.PP
+This function is intended to be a high-resolution, elapsed (or wall) clock. See MPI_Wtick to determine the resolution of MPI_Wtime. 
+.PP
+On POSIX platforms, this function may utilize a timer that is cheaper
+to invoke than the gettimeofday() system call, but will fall back to
+gettimeofday() if a cheap high-resolution timer is not available.  The
+ompi_info command can be consulted to see if Open MPI supports a
+native high-resolution timer on your platform; see the value for "MPI_WTIME 
+support" (or "options:mpi-wtime" when viewing the parsable
+output).  If this value is "native", a method that is likely to be
+cheaper than gettimeofday() will be used to obtain the time when
+MPI_Wtime is invoked.
+.PP
+This function does not return an error value. Consequently, the result of calling it before MPI_Init or after MPI_Finalize is undefined.
+
+.SH SEE ALSO
+MPI_Wtick
+.br
+
Index: proiecte/hpl/openmpi_compiled/share/man/man3/OpenMPI.3
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man3/OpenMPI.3	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man3/OpenMPI.3	(revision 97)
@@ -0,0 +1,6 @@
+.so man3/MPI.3
+
+
+
+
+
Index: proiecte/hpl/openmpi_compiled/share/man/man7/ompi_crcp.7
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man7/ompi_crcp.7	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man7/ompi_crcp.7	(revision 97)
@@ -0,0 +1,93 @@
+.\"
+.\" Man page for OMPI's CRCP Functionality
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OMPI_CRCP 7 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+Open MPI MCA Checkpoint/Restart Coordination Protocol (CRCP) Framework \- Overview of Open MPI's CRCP 
+framework, and selected modules.  Open MPI 1.4
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+The CRCP Framework is used by Open MPI for the encapsulation of various
+Checkpoint/Restart Coordination Protocols (e.g., Coordinated, Uncoordinated,
+Message/Communication Induced, ...).
+.
+.\" **************************
+.\"    General Process Requirements Section
+.\" **************************
+.SH GENERAL PROCESS REQUIREMENTS
+.PP
+In order for a process to use the Open MPI CRCP components it must adhear to a
+few programmatic requirements.
+.PP
+First, the program must call \fIMPI_INIT\fR early in its execution.
+.PP
+The program must call \fIMPI_FINALIZE\fR before termination.
+.PP
+A user may initiate a checkpoint of a parallel application by using the
+ompi-checkpoint(1) and ompi-restart(1) commands.
+.
+.\" **********************************
+.\"    Available Components Section
+.\" **********************************
+.SH AVAILABLE COMPONENTS
+.PP
+Open MPI currently ships with one CRCP component: \fIcoord\fR.
+.
+.PP
+The following MCA parameters apply to all components:
+.
+.TP 4
+crcp_base_verbose
+Set the verbosity level for all components. Default is 0, or silent except on error.
+.
+.\"   Coord Component
+.\" ******************
+.SS coord CRCP Component
+.PP
+The \fIcoord\fR component implements a Coordinated Checkpoint/Restart
+Coordination Protocol similar to the one implemented in LAM/MPI.
+.
+.PP
+The \fIcoord\fR component has the following MCA parameters:
+.
+.TP 4
+crcp_coord_priority
+The component's priority to use when selecting the most appropriate component
+for a run.
+.
+.TP 4
+crcp_coord_verbose
+Set the verbosity level for this component. Default is 0, or silent except on
+error.
+.
+.\"   Special 'none' option
+.\" ************************
+.SS none CRCP Component
+.PP
+The \fInone\fP component simply selects no CRCP component. All of the CRCP
+function calls return immediately with ORTE_SUCCESS. 
+.
+.PP
+This component is the last component to be selected by default. This means that if
+another component is available, and the \fInone\fP component was not explicity
+requested then Open MPI will attempt to activate all of the available components
+before falling back to this component.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  ompi-checkpoint(1), ompi-restart(1), opal-checkpoint(1), opal-restart(1),
+orte_snapc(7), orte_filem(7), opal_crs(7)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man7/opal_crs.7
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man7/opal_crs.7	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man7/opal_crs.7	(revision 97)
@@ -0,0 +1,183 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2009      Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for OPAL's CRS Functionality
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH OPAL_CRS 7 "Dec 08, 2009" "1.4" "Open MPI"
+
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+Open PAL MCA Checkpoint/Restart Service (CRS) \- Overview of Open PAL's CRS 
+framework, and selected modules.  Open MPI 1.4. 
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+Open PAL can involuntarily checkpoint and restart sequential programs.
+Doing so requires that Open PAL was compiled with thread support and
+that the back-end checkpointing systems are available at run-time.
+.
+.SS Phases of Checkpoint / Restart
+.PP
+Open PAL defines three phases for checkpoint / restart support in a
+procress:
+.
+.TP 4
+Checkpoint
+When the checkpoint request arrives, the procress is notified of the 
+request before the checkpoint is taken.
+.
+.TP 4
+Continue
+After a checkpoint has successfully completed, the same process as the
+checkpoint is notified of its successful continuation of execution.
+.
+.TP 4
+Restart
+After a checkpoint has successfully completed, a new / restarted
+process is notified of its successful restart.
+.
+.PP
+The Continue and Restart phases are identical except for the process
+in which they are invoked. The Continue phase is invoked in the same process
+as the Checkpoint phase was invoked. The Restart phase is only invoked in newly
+restarted processes.
+.
+.\" **************************
+.\"    General Process Requirements Section
+.\" **************************
+.SH GENERAL PROCESS REQUIREMENTS
+.PP
+In order for a process to use the Open PAL CRS components it must adhear to a
+few programmatic requirements.
+.PP
+First, the program must call \fIOPAL_INIT\fR early in its execution. This
+should only be called once, and it is not possible to checkpoint the process
+without it first having called this function.
+.PP
+The program must call \fIOPAL_FINALIZE\fR before termination. This does a 
+significant amount of cleanup. If it is not called, then it is very likely that
+remnants are left in the filesystem.
+.PP
+To checkpoint and restart a process you must use the Open PAL tools to do
+so. Using the backend checkpointer's checkpoint and restart tools will lead
+to undefined behavior.
+To checkpoint a process use \fIopal_checkpoint\fR (opal_checkpoint(1)).
+To restart a process use \fIopal_restart\fR (opal_restart(1)).
+.
+.\" **********************************
+.\"    Available Components Section
+.\" **********************************
+.SH AVAILABLE COMPONENTS
+.PP
+Open PAL ships with two CRS components: \fIself\fR and \fIblcr\fR.
+.
+.PP
+The following MCA parameters apply to all components:
+.
+.TP 4
+crs_base_verbose
+Set the verbosity level for all components. Default is 0, or silent except on error.
+.
+.TP 
+crs_base_snapshot_dir
+The directory to store the checkpoint snapshots. Default is \fB/tmp\fP.
+.
+.\"   Self Component
+.\" ******************
+.SS self CRS Component
+.PP
+The \fIself\fR component invokes user-defined functions to save and restore
+checkpoints. It is simply a mechanism for user-defined functions to be invoked
+at Open PAL's Checkpoint, Continue, and Restart phases. Hence, the only data
+that is saved during the checkpoint is what is written in the user's checkpoint
+function. No libary state is saved at all.
+.
+.PP
+As such, the model for the \fIself\fR component is slightly differnt than for
+other components. Specifically, the Restart function is not invoked in the same
+process image of the process that was checkpointed. The Restart phase is
+invoked during \fBOPAL_INIT\fR of the new instance of the applicaiton (i.e., it
+starts over from main()).
+.
+.PP
+The \fIself\fR component has the following MCA parameters:
+.TP 4
+crs_self_prefix
+Speficy a string prefix for the name of the checkpoint, continue, and restart
+functions that Open PAL will invoke during the respective stages. That is,
+by specifying "-mca crs_self_prefix foo" means that Open PAL expects to find
+three functions at run-time:
+
+   int foo_checkpoint()
+
+   int foo_continue()
+
+   int foo_restart()
+
+By default, the prefix is set to "opal_crs_self_user".
+.
+.TP 4
+crs_self_priority
+Set the \fIself\fR components default priority
+.
+.TP 4
+crs_self_verbose
+Set the verbosity level. Default is 0, or silent except on error.
+.
+.TP 4
+crs_self_do_restart
+This is mostly internally used. A general user should never need to set this
+value. This is set to non-0 when a the new process should invoke the restart
+callback in \fIOPAL_INIT\fR. Default is 0, or normal execution.
+.
+.\"   BLCR Component
+.\" ******************
+.SS blcr CRS Component
+.PP
+The Berkeley Lab Checkpoint/Restart (BLCR) single-process checkpoint is a
+software system developed at Lawrence Berkeley National Laboratory. See the
+project website for more details:
+
+   \fI http://ftg.lbl.gov/CheckpointRestart/CheckpointRestart.shtml \fR
+.
+.PP
+The \fIblcr\fR component has the following MCA parameters:
+.TP 4
+crs_blcr_priority
+Set the \fIblcr\fR components default priority.
+.
+.TP 4
+crs_blcr_verbose
+Set the verbosity level. Default is 0, or silent except on error.
+.
+.\"   Special 'none' option
+.\" ************************
+.SS none CRS Component
+.PP
+The \fInone\fP component simply selects no CRS component. All of the CRS
+function calls return immediately with OPAL_SUCCESS. 
+.
+.PP
+This component is the last component to be selected by default. This means that if
+another component is available, and the \fInone\fP component was not explicity
+requested then OPAL will attempt to activate all of the available components
+before falling back to this component.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  opal_checkpoint(1), opal_restart(1)
+.\", orte_crs(7), ompi_crs(7)
Index: proiecte/hpl/openmpi_compiled/share/man/man7/orte_filem.7
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man7/orte_filem.7	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man7/orte_filem.7	(revision 97)
@@ -0,0 +1,92 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's FileM Functionality
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH ORTE_FILEM 7 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+Open RTE MCA File Management (FileM) Framework \- Overview of Open RTE's FileM 
+framework, and selected modules.  Open MPI 1.4
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+FileM is a utility framework used by OpenRTE for a variety of purposes, including
+the transport of checkpoint files, preloading user binaries, and preloading of user files.
+.
+.\" **********************************
+.\"    Available Components Section
+.\" **********************************
+.SH AVAILABLE COMPONENTS
+.PP
+Open RTE currently ships with one FileM component: \fIrsh\fR.
+.
+.PP
+The following MCA parameters apply to all components:
+.
+.TP 4
+filem_base_verbose
+Set the verbosity level for all components. Default is 0, or silent except on
+error.
+.
+.
+.\"   rsh Component
+.\" ******************
+.SS rsh FileM Component
+.PP
+The \fIrsh\fR component uses \fIrcp\fP or \fIscp\fP to do its file transfers. This component
+requires the use of passwordless \fIrsh\fP or \fIssh\fP between all nodes.
+.
+.PP
+The \fIrsh\fR component has the following MCA parameters:
+.
+.TP 4
+filem_rsh_priority
+The component's priority to use when selecting the most appropriate component
+for a run.
+.
+.TP 4
+filem_rsh_verbose
+Set the verbosity level for this component. Default is 0, or silent except on
+error.
+.
+.TP 4
+filem_rsh_rcp
+The program to use to copy files. Generally will be rcp or scp.
+.
+.TP 4
+filem_rsh_rsh
+The program used to remotely log into a given machine and remove files.
+Generally will be rsh or ssh.
+.
+.\"   Special 'none' option
+.\" ************************
+.SS none FileM Component
+.PP
+The \fInone\fP component simply selects no FileM component. All of the FileM
+function calls return immediately with ORTE_SUCCESS. 
+.
+.PP
+This component is the last component to be selected by default. This means that if
+another component is available, and the \fInone\fP component was not explicity
+requested then ORTE will attempt to activate all of the available components
+before falling back to this component.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  orte-checkpoint(1), orte-restart(1), opal-checkpoint(1), opal-restart(1), orte_snapc(7), opal_crs(7)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man7/orte_hosts.7
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man7/orte_hosts.7	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man7/orte_hosts.7	(revision 97)
@@ -0,0 +1,196 @@
+.\"
+.\" Copyright (c) 2008	     Los Alamos National Security, LLC  All rights reserved.
+.\" Copyright (c) 2008-2009  Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's Hostfile functionality
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH ORTE_HOSTS 7 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+OpenRTE Hostfile and HOST Behavior \- Overview of OpenRTE's support for user-supplied hostfiles and comma-delimited lists of hosts
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+OpenRTE supports several levels of user-specified host lists based on an established
+precedence order. Users can specify a \fIdefault hostfile\fP that contains a list of
+nodes available to all app_contexts given on the command line. Only \fIone\fP default
+hostfile can be provided for any job. In addition, users
+can specify a \fIhostfile\fP that contains a list of nodes to be used for a specific
+app_context, or can provide a comma-delimited list of nodes to be used for that
+app_context via the \fI-host\fP command line option.
+.sp
+The precedence order applied to these various options depends to some extent on
+the local environment. The following table illustrates how host and hostfile directives
+work together to define the set of hosts upon which a job will execute
+in the absence of a resource manager (RM):
+.sp
+.nf
+ default
+ hostfile      host        hostfile       Result
+----------    ------      ----------      -----------------------------------------
+ unset        unset          unset        Job is co-located with mpirun
+ unset         set           unset        Host defines resource list for the job
+ unset        unset           set         Hostfile defines resource list for the job
+ unset         set            set         Hostfile defines resource list for the job,
+                                          then host filters the list to define the final
+                                          set of nodes available to each application
+                                          within the job
+  set         unset          unset        Default hostfile defines resource list for the job
+  set          set           unset        Default hostfile defines resource list for the job,
+                                          then host filters the list to define the final
+                                          set of nodes available to each application
+                                          within the job
+  set          set            set         Default hostfile defines resource list for the job,
+                                          then hostfile filters the list, and then host filters
+                                          the list to define the final set of nodes available
+                                          to each application within the job
+.fi
+.sp
+This changes somewhat in the presence of a RM as that entity specifies the
+initial allocation of nodes. In this case, the default hostfile, hostfile and host
+directives are all used to filter the RM's specification so that a user can utilize different
+portions of the allocation for different jobs. This is done according to the same precedence
+order as in the prior table, with the RM providing the initial pool of nodes.
+.sp
+.
+.\" **************************
+.\"    Relative Indexing
+.\" **************************
+.SH RELATIVE INDEXING
+.
+.PP
+Once an initial allocation has been specified (whether by an RM, default hostfile, or hostfile),
+subsequent hostfile and -host specifications can be made using relative indexing. This allows a
+user to stipulate which hosts are to be used for a given app_context without specifying the
+particular host name, but rather its relative position in the allocation.
+.sp
+This can probably best be understood through consideration of a few examples. Consider the case
+where an RM has allocated a set of nodes to the user named "foo1, foo2, foo3, foo4". The user
+wants the first app_context to have exclusive use of the first two nodes, and a second app_context
+to use the last two nodes. Of course, the user could printout the allocation to find the names
+of the nodes allocated to them and then use -host to specify this layout, but this is cumbersome
+and would require hand-manipulation for every invocation.
+.sp
+A simpler method is to utilize OpenRTE's relative indexing capability to specify the desired
+layout. In this case, a command line of:
+.sp
+mpirun -pernode -host +n1,+n2 ./app1 : -host +n3,+n4 ./app2
+.sp
+.PP
+would provide the desired pattern. The "+" syntax indicates that the information is being
+provided as a relative index to the existing allocation. Two methods of relative indexing
+are supported:
+.sp
+.TP
+.B +n<#>
+A relative index into the allocation referencing the <#> node. OpenRTE will substitute
+the <#> node in the allocation
+.
+.
+.TP
+.B +e[:<#>]
+A request for <#> empty nodes - i.e., OpenRTE is to substitute this reference with
+<#> nodes that have not yet been used by any other app_context. If the ":<#>" is not
+provided, OpenRTE will substitute the reference with all empty nodes. Note that OpenRTE
+does track the empty nodes that have been assigned in this manner, so multiple
+uses of this option will result in assignment of unique nodes up to the limit of the
+available empty nodes. Requests for more empty nodes than are available will generate
+an error.
+.sp
+.PP
+Relative indexing can be combined with absolute naming of hosts in any arbitrary manner,
+and can be used in hostfiles as well as with the -host command line option. In addition,
+any slot specification provided in hostfiles will be respected - thus, a user can specify
+that only a certain number of slots from a relative indexed host are to be used for a
+given app_context.
+.sp
+Another example may help illustrate this point. Consider the case where a user has a default
+hostfile containing:
+.sp
+.nf
+dummy1 slots=4
+dummy2 slots=4
+dummy3 slots=4
+dummy4 slots=4
+dummy5 slots=4
+.fi
+.sp
+.PP
+This may, for example, be a hostfile that describes a set of commonly-used resources that
+the user wishes to execute applications against. For this particular application, the user
+plans to map byslot, and wants the first two ranks to be on the second node of any allocation,
+the next ranks to land on an empty node, have one rank specifically on dummy4, the next rank
+to be on the second node of the allocation again, and finally any remaining ranks to be on
+whatever empty nodes are left. To accomplish this, the user provides a hostfile of:
+.sp
+.nf
++n2 slots=2
++e:1
+dummy4 slots=1
++n2
++e
+.fi
+.sp
+.PP
+The user can now use this information in combination with OpenRTE's sequential mapper to
+obtain their specific layout:
+.sp
+.nf
+mpirun --default-hostfile dummyhosts -hostfile mylayout -mca rmaps seq ./my_app
+.fi
+.sp
+.PP
+which will result in:
+.nf
+.sp
+rank0 being mapped to dummy3
+.br
+rank1 to dummy1 as the first empty node
+.br
+rank2 to dummy4
+.br
+rank3 to dummy3
+.br
+rank4 to dummy2 and rank5 to dummy5 as the last remaining unused nodes
+.sp
+.fi
+Note that the sequential mapper ignores the number of slots arguments as it only
+maps one rank at a time to each node in the list.
+.sp
+If the default round-robin mapper had been used, then the mapping would have resulted in:
+.sp
+.nf
+ranks 0 and 1 being mapped to dummy3 since two slots were specified
+.br
+ranks 2-5 on dummy1 as the first empty node, which has four slots
+.br
+rank6 on dummy4 since the hostfile specifies only a single slot from that node is to be used
+.br
+ranks 7 and 8 on dummy3 since only two slots remain available
+.br
+ranks 9-12 on dummy2 since it is the next available empty node and has four slots
+.br
+ranks 13-16 on dummy5 since it is the last remaining unused node and has four slots
+.fi
+.sp 
+.PP
+Thus, the use of relative indexing can allow for complex mappings to be ported across
+allocations, including those obtained from automated resource managers, without the need
+for manual manipulation of scripts and/or command lines.
+.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  orterun(1)
+.
Index: proiecte/hpl/openmpi_compiled/share/man/man7/orte_snapc.7
===================================================================
--- proiecte/hpl/openmpi_compiled/share/man/man7/orte_snapc.7	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/man/man7/orte_snapc.7	(revision 97)
@@ -0,0 +1,109 @@
+.\"
+.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+.\"                         University Research and Technology
+.\"                         Corporation.  All rights reserved.
+.\" Copyright (c) 2008-2009 Sun Microsystems, Inc.  All rights reserved.
+.\"
+.\" Man page for ORTE's SnapC Functionality
+.\" 
+.\" .TH name     section center-footer   left-footer  center-header
+.TH ORTE_SNAPC 7 "Dec 08, 2009" "1.4" "Open MPI"
+.\" **************************
+.\"    Name Section
+.\" **************************
+.SH NAME
+.
+Open RTE MCA Snapshot Coordination (SnapC) Framework \- Overview of Open RTE's SnapC 
+framework, and selected modules.  Open MPI 1.4
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+.PP
+Open RTE can coordinate the generation of a global snapshot of a parallel job
+from many distributed local snapshots. The components in this framework
+determine how to: Initiate the checkpoint of the parallel application, gather
+together the many distributed local snapshots, and provide the user with a
+global snapshot handle reference that can be used to restart the parallel
+application.
+.
+.\" **************************
+.\"    General Process Requirements Section
+.\" **************************
+.SH GENERAL PROCESS REQUIREMENTS
+.PP
+In order for a process to use the Open RTE SnapC components it must adhear to a
+few programmatic requirements.
+.PP
+First, the program must call \fIORTE_INIT\fR early in its execution. This
+should only be called once, and it is not possible to checkpoint the process
+without it first having called this function.
+.PP
+The program must call \fIORTE_FINALIZE\fR before termination.
+.PP
+A user may initiate a checkpoint of a parallel application by using the
+orte-checkpoint(1) and orte-restart(1) commands.
+.
+.\" **********************************
+.\"    Available Components Section
+.\" **********************************
+.SH AVAILABLE COMPONENTS
+.PP
+Open RTE ships with one SnapC component: \fIfull\fR.
+.
+.PP
+The following MCA parameters apply to all components:
+.
+.TP 4
+snapc_base_verbose
+Set the verbosity level for all components. Default is 0, or silent except on error.
+.
+.TP 
+snapc_base_global_snapshot_dir
+The directory to store the checkpoint snapshots. Default is \fB/tmp\fP.
+.
+.\"   Self Component
+.\" ******************
+.SS full SnapC Component
+.PP
+The \fIfull\fR component gathers together the local snapshots to the disk local
+to the Head Node Process (HNP) before completing the checkpoint of the process. This
+component does not currently support replicated HNPs, or timer based gathering
+of local snapshot data. This is a 3-tiered hierarchy of coordinators.
+.
+.PP
+The \fIfull\fR component has the following MCA parameters:
+.
+.TP 4
+snapc_full_priority
+The component's priority to use when selecting the most appropriate component
+for a run.
+.
+.TP 4
+snapc_full_verbose
+Set the verbosity level for this component. Default is 0, or silent except on
+error.
+.
+.\"   Special 'none' option
+.\" ************************
+.SS none SnapC Component
+.PP
+The \fInone\fP component simply selects no SnapC component. All of the SnapC
+function calls return immediately with ORTE_SUCCESS. 
+.
+.PP
+This component is the last component to be selected by default. This means that if
+another component is available, and the \fInone\fP component was not explicity
+requested then ORTE will attempt to activate all of the available components
+before falling back to this component.
+.
+.\" **************************
+.\"    See Also Section
+.\" **************************
+.
+.SH SEE ALSO
+  orte-checkpoint(1), orte-restart(1), opal-checkpoint(1), opal-restart(1),
+orte_filem(7), opal_crs(7)
+.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/amca-param-sets/example.conf
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/amca-param-sets/example.conf	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/amca-param-sets/example.conf	(revision 97)
@@ -0,0 +1,5 @@
+#
+# This is an example file illustrating how to setup an Aggregate MCA parameters
+# file.
+#
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/doc/ptmalloc2-COPYRIGHT
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/doc/ptmalloc2-COPYRIGHT	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/doc/ptmalloc2-COPYRIGHT	(revision 97)
@@ -0,0 +1,19 @@
+Copyright (c) 2001-2004 Wolfram Gloger
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without fee,
+provided that (i) the above copyright notices and this permission
+notice appear in all copies of the software and related documentation,
+and (ii) the name of Wolfram Gloger may not be used in any advertising
+or publicity relating to the software.
+
+THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+IN NO EVENT SHALL WOLFRAM GLOGER BE LIABLE FOR ANY SPECIAL,
+INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY
+DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY
+OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-coll-sync.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-coll-sync.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-coll-sync.txt	(revision 97)
@@ -0,0 +1,22 @@
+# -*- text -*-
+#
+# Copyright (c) 2009 Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI's sync
+# collective component.
+#
+[missing collective]
+The sync collective component in Open MPI was activated on a
+communicator where it did not find an underlying collective operation
+defined.  This usually means that the sync collective module's
+priority was not set high enough.  Please try increasing sync's
+priority.
+
+  Local host: %s
+  Sync coll module priority: %d
+  First discovered missing collective: %s
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-dash-host.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-dash-host.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-dash-host.txt	(revision 97)
@@ -0,0 +1,68 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for hostfile utilities.
+#
+
+[not-all-mapped-alloc]
+At least one of the requested hosts is not included in the current allocation.
+
+Missing requested host: %s
+
+Please check your allocation or your request.
+#
+[dash-host:relative-syntax]
+A relative host was specified, but no prior allocation has been made.
+Thus, there is no way to determine the proper host to be used.
+
+-host: %s
+
+Please see the orte_hosts man page for further information.
+#
+[dash-host:relative-node-not-found]
+A relative host was specified, but was not found. The requested host was
+specified with --host as:
+
+Index: %d
+Syntax given: %s
+
+Please see the orte_hosts man page for further information.
+#
+[dash-host:relative-node-out-of-bounds]
+A relative host was specified, but the index given is beyond the number
+of hosts in the current allocation:
+
+Index: %d
+#hosts: %d
+
+You could obtain a larger allocation or reduce the relative host index.
+Please see the orte_hosts man page for further information.
+#
+[dash-host:invalid-relative-node-syntax]
+A relative host was improperly specified - the value provided was.
+
+-host: %s
+
+You may have forgotten to preface a node with 'N' or 'n', or used the 'e' or 'E' to indicate
+empty nodes. Please see the orte_hosts man page for further information.
+#
+[dash-host:not-enough-empty]
+The requested number of empty hosts was not available - the system was short by %d hosts.
+
+Please recheck your allocation - further information is available on the
+orte_hosts man page.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ess-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ess-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ess-base.txt	(revision 97)
@@ -0,0 +1,34 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for the SDS base.
+#
+[ess-base:execv-error]
+The singleton application was not able to find the executable "orted" in
+your PATH or in the directory where Open MPI/OpenRTE was initially installed,
+and therefore cannot continue.
+
+For reference, we tried the following command:
+
+  %s
+
+and got the error %s.
+
+This could mean that your PATH or executable name is wrong, or that you do not
+have the necessary permissions.  Please ensure that the executable is able to be
+found and executed as it is required for singleton operations.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-hostfile.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-hostfile.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-hostfile.txt	(revision 97)
@@ -0,0 +1,119 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for hostfile utilities.
+#
+[no-hostfile]
+Open RTE was unable to open the hostfile:
+    %s
+Check to make sure the path and filename are correct.
+[slots]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The slots parameter is less than 0:
+    slots=%d
+[max_slots]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The max_slots parameter is less than 0:
+    max_slots=%d
+[max_slots_lt]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The max_slots parameter is less than the slots parameter:
+    slots=%d
+    max_slots=%d
+[parse_error_string]
+Open RTE detected a parse error in the hostfile:
+    %s
+It occured on line number %d on token %d:
+    %s
+[parse_error_int]
+Open RTE detected a parse error in the hostfile:
+    %s
+It occured on line number %d on token %d:
+    %d
+[parse_error]
+Open RTE detected a parse error in the hostfile:
+    %s
+It occured on line number %d on token %d.
+[not-all-mapped-alloc]
+Some of the requested hosts are not included in the current allocation.
+
+The requested hosts were in this hostfile:
+  %s
+
+Please verify that you have specified the allocated resources properly in
+the provided hostfile.
+#
+[hostfile:relative-syntax]
+A relative host was specified, but no prior allocation has been made.
+Thus, there is no way to determine the proper host to be used.
+
+hostfile entry: %s
+
+Please see the orte_hosts man page for further information.
+#
+[hostfile:relative-node-not-found]
+A relative host was specified, but was not found. The requested host was
+specified with as:
+
+Index: %d
+Syntax given: %s
+
+Please see the orte_hosts man page for further information.
+#
+[hostfile:relative-node-out-of-bounds]
+A relative host was specified, but the index given is beyond the number
+of hosts in the current allocation:
+
+Index: %d
+#hosts: %d
+
+You could obtain a larger allocation or reduce the relative host index.
+Please see the orte_hosts man page for further information.
+#
+[hostfile:invalid-relative-node-syntax]
+A relative host was improperly specified - the value provided was.
+
+hostfile entry: %s
+
+You may have forgotten to preface a node with 'N' or 'n', or used the 'e' or 'E' to indicate
+empty nodes. Please see the orte_hosts man page for further information.
+#
+[hostfile:not-enough-empty]
+The requested number of empty hosts was not available - the system was short by %d hosts.
+
+Please recheck your allocation - further information is available on the
+orte_hosts man page.
+[boards]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The boards parameter is less than 0:
+    boards=%d
+[sockets]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The sockets parameter is less than 0:
+    sockets=%d
+[cores]
+Open RTE detected a bad parameter in the hostfile:
+    %s
+The cores parameter is less than 0:
+    cores=%d
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-base.txt	(revision 97)
@@ -0,0 +1,62 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI MCA error messages.
+#
+[find-available:none-found]
+No available %s components were found!
+
+This means that there are no components of this type installed on your
+system or all the components reported that they could not be used.
+
+This is a fatal error; your MPI process is likely to abort.  Check the
+output of the "ompi_info" command and ensure that components of this
+type are available on your system.  You may also wish to check the
+value of the "component_path" MCA parameter and ensure that it has at
+least one directory that contains valid MCA components.
+#
+[find-available:not-valid]
+A requested component was not found, or was unable to be opened.  This
+means that this component is either not installed or is unable to be
+used on your system (e.g., sometimes this means that shared libraries
+that the component requires are unable to be found/loaded).  Note that
+Open MPI stopped checking at the first component that it did not find.
+
+Host:      %s
+Framework: %s
+Component: %s
+#
+[framework-param:too-many-negates]
+MCA framework parameters can only take a single negation operator
+("^"), and it must be at the beginning of the value.  The following
+value violates this rule:
+
+    %s
+
+When used, the negation operator sets the "exclusive" behavior mode,
+meaning that it will exclude all specified components (and implicitly
+include all others).  If the negation operator is not specified, the
+"inclusive" mode is assumed, meaning that all specified components
+will be included (and implicitly exclude all others).
+
+For example, "^a,b" specifies the exclusive behavior and means "use
+all components *except* a and b", while "c,d" specifies the inclusive
+behavior and means "use *only* components c and d."
+
+You cannot mix inclusive and exclusive behavior.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-bml-r2.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-bml-r2.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-bml-r2.txt	(revision 97)
@@ -0,0 +1,34 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[unreachable proc]
+At least one pair of MPI processes are unable to reach each other for
+MPI communications.  This means that no Open MPI device has indicated
+that it can be used to communicate between these processes.  This is
+an error; Open MPI requires that all MPI processes be able to reach
+each other.  This error can sometimes be the result of forgetting to
+specify the "self" BTL.
+
+  Process 1 (%s) is on host: %s
+  Process 2 (%s) is on host: %s
+  BTLs attempted: %s
+
+Your MPI job is now going to abort; sorry.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-coll-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-coll-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-coll-base.txt	(revision 97)
@@ -0,0 +1,45 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI MCA coll-specific
+# error messages. 
+#
+[comm-select:none-available]
+Although some coll components are available on your system, none of
+them said that they could be used for a new communicator.
+
+This is extremely unusual -- either the "basic" or "self" components
+should be able to be chosen for any communicator.  As such, this
+likely means that something else is wrong (although you should double
+check that the "basic" and "self" coll components are available on
+your system -- check the output of the "ompi_info" command).
+#
+[comm-unselect:failed-finalize]
+A coll module failed to finalize properly when a communicator that was
+using it was destroyed.  
+
+This is somewhat unusual: the module itself may be at fault, or this
+may be a symptom of another issue (e.g., a memory problem).
+#
+[comm-unselect:basic-failed-finalize]
+The basic coll module failed to finalize properly when a communicator
+that was using it was destroyed.  This happened on the communicator
+named "%s".
+
+This is extremely unusual and typically indicates some other kind of
+problem (e.g., a memory problem)
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-param.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-param.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mca-param.txt	(revision 97)
@@ -0,0 +1,44 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI MCA error messages.
+#
+[read-only-param-set]
+WARNING: A user-supplied value attempted to override the read-only MCA
+parameter named "%s".
+
+The user-supplied value was ignored.
+#
+[missing-param-file]
+Process %d Unable to locate the parameter file "%s" in the following search path:
+   %s
+#
+[deprecated mca param env]
+A deprecated MCA parameter value was specified in the environment or
+on the command line.  Deprecated MCA parameters should be avoided;
+they may disappear in future releases.
+
+  Deprecated parameter: %s
+#
+[deprecated mca param file]
+A deprecated MCA parameter value was specified in an MCA parameter
+file.  Deprecated MCA parameters should be avoided; they may disappear
+in future releases.
+
+  Deprecated parameter: %s
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-api.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-api.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-api.txt	(revision 97)
@@ -0,0 +1,27 @@
+# -*- text -*-
+#
+# Copyright (c) 2006      High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2006-2008 Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[mpi-function-after-finalize]
+Calling any MPI-function after calling MPI_Finalize is erroneous.
+The only exceptions are MPI_Initialized, MPI_Finalized and MPI_Get_version.
+#
+[mpi-initialize-twice]
+Calling MPI_Init or MPI_Init_thread twice is erroneous.
+#
+[mpi-abort]
+MPI_ABORT was invoked on rank %d in communicator %s 
+with errorcode %d.
+
+NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
+You may or may not see output from other processes, depending on
+exactly when Open MPI kills them.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-btl-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-btl-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-btl-base.txt	(revision 97)
@@ -0,0 +1,28 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+[btl:no-nics]
+%s: A high-performance Open MPI point-to-point messaging module
+was unable to find any relevant network interfaces:
+
+Module: %s
+  Host: %s
+
+Another transport will be used instead, although this may result in
+lower performance.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-common-sm.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-common-sm.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-common-sm.txt	(revision 97)
@@ -0,0 +1,31 @@
+# -*- text -*-
+#
+# Copyright (c) 2009 Cisco Systems, Inc.  All rights reserved.
+#
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI's common shmem support.
+#
+[sys call fail]
+A system call failed during shared memory initialization that should
+not have.  It is likely that your MPI job will now either abort or
+experience performance degredation.
+
+  Local host:  %s
+  System call: %s %s
+  Error:       %s (errno %d)
+#
+[mmap too small]
+Open MPI requested a shared memory segment that was too small to do
+anything useful.  This is likely an error in Open MPI itself.  If you
+see this error, you should see if there is an update available for
+Open MPI, and if not, contact the Open MPI developers.
+
+  Local host:        %s
+  Requested size:    %ul
+  Control seg size:  %ul
+  Data seg aligment: %ul
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-errors.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-errors.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-errors.txt	(revision 97)
@@ -0,0 +1,35 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2008      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# *** THESE MESSAGES ARE COORDINATED WITH FIXED STRINGS IN
+# *** errhandler_predefined.c!  Do not change these messages without also
+# *** changing errhandler_predefined.c!
+#
+[mpi_errors_are_fatal]
+%s *** An error occurred %s %s
+%s *** on %s %s
+%s *** %s
+%s *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort)
+#
+[mpi_errors_are_fatal unknown handle]
+%s *** An error occurred %s %s
+%s *** on a NULL %s
+%s *** %s
+%s *** MPI_ERRORS_ARE_FATAL (your MPI job will now abort)
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-runtime.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-runtime.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpi-runtime.txt	(revision 97)
@@ -0,0 +1,94 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2007      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[mpi_init:startup:internal-failure]
+It looks like %s failed for some reason; your parallel process is
+likely to abort.  There are many reasons that a parallel process can
+fail during %s; some of which are due to configuration or environment
+problems.  This failure appears to be an internal failure; here's some
+additional information (which may only be relevant to an Open MPI
+developer):
+
+  %s
+  --> Returned "%s" (%d) instead of "Success" (0)
+[mpi-param-check-enabled-but-compiled-out]
+WARNING: The MCA parameter mpi_param_check has been set to true, but
+parameter checking has been compiled out of Open MPI.  The
+mpi_param_check value has therefore been ignored.
+[mpi-params:leave-pinned-and-pipeline-selected]
+WARNING: Cannot set both the MCA parameters mpi_leave_pinned and
+mpi_leave_pinned_pipeline to "true".  Defaulting to mpi_leave_pinned
+ONLY.
+[mpi_init:startup:paffinity-unavailable]
+The MCA parameter "mpi_paffinity_alone" was set to a nonzero value,
+but Open MPI was unable to bind MPI_COMM_WORLD rank %s to a processor.
+
+Typical causes for this problem include:
+
+   - A node was oversubscribed (more processes than processors), in
+     which case Open MPI will not bind any processes on that node
+   - A startup mechanism was used which did not tell Open MPI which
+     processors to bind processes to
+[mpi_finalize:invoked_multiple_times]
+The function MPI_FINALIZE was invoked multiple times in a single
+process on host %s, PID %d.  
+
+This indicates an erroneous MPI program; MPI_FINALIZE is only allowed
+to be invoked exactly once in a process.
+[proc:heterogeneous-support-unavailable]
+The build of Open MPI running on host %s was not 
+compiled with heterogeneous support.  A process running on host 
+%s appears to have a different architecture,
+which will not work.  Please recompile Open MPI with the
+configure option --enable-heterogeneous or use a homogeneous
+environment.
+#
+[sparse groups enabled but compiled out]
+WARNING: The MCA parameter mpi_use_sparse_group_storage has been set
+to true, but sparse group support was not compiled into Open MPI.  The
+mpi_use_sparse_group_storage value has therefore been ignored.
+#
+[heterogeneous-support-unavailable]
+This installation of Open MPI was configured without support for
+heterogeneous architectures, but at least one node in the allocation
+was detected to have a different architecture. The detected node was:
+
+Node: %s
+
+In order to operate in a heterogeneous environment, please reconfigure
+Open MPI with --enable-heterogeneous.
+#
+[mpi_init:warn-fork]
+An MPI process has executed an operation involving a call to the
+"fork()" system call to create a child process.  Open MPI is currently
+operating in a condition that could result in memory corruption or
+other system errors; your MPI job may hang, crash, or produce silent
+data corruption.  The use of fork() (or system() or other calls that
+create child processes) is strongly discouraged.  
+
+The process that invoked fork was:
+
+  Local host:          %s (PID %d)
+  MPI_COMM_WORLD rank: %d
+
+If you are *absolutely sure* that your application will successfully
+and correctly survive a call to fork(), you may disable this warning
+by setting the mpi_warn_on_fork MCA parameter to 0.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-mpool-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-mpool-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-mpool-base.txt	(revision 97)
@@ -0,0 +1,49 @@
+# -*- text -*-
+#
+# Copyright (c) 2007-2009 Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+[all mem leaks]
+The following memory locations were allocated via MPI_ALLOC_MEM but
+not freed via MPI_FREE_MEM before invoking MPI_FINALIZE:
+
+Process ID: %s
+Hostname:   %s
+PID:        %d
+
+%s
+#
+[some mem leaks]
+The following memory locations were allocated via MPI_ALLOC_MEM but
+not freed via MPI_FREE_MEM before invoking MPI_FINALIZE:
+
+Process ID: %s
+Hostname:   %s
+PID:        %d
+
+%s
+
+%d additional leak%s recorded but %s not displayed here.  Set the MCA
+parameter mpi_show_mpi_alloc_mem_leaks to a larger number to see that
+many leaks, or set it to a negative number to see all leaks.
+#
+[leave pinned failed]
+A process attempted to use the "leave pinned" MPI feature, but no
+memory registration hooks were found on the system at run time.  This
+may be the result of running on a system that does not support memory
+hooks or having some other software subvert Open MPI's use of the
+memory hooks.  You can disable Open MPI's use of memory hooks by
+setting both the mpi_leave_pinned and mpi_leave_pinned_pipeline MCA
+parameters to 0.
+
+Open MPI will disable any transports that are attempting to use the
+leave pinned functionality; your job may still run, but may fall back
+to a slower network transport (such as TCP).
+
+  Mpool name: %s
+  Process:    %s
+  Local host: %s
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-odls-default.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-odls-default.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-odls-default.txt	(revision 97)
@@ -0,0 +1,132 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2009      Sun Microsystems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orted launcher.
+#
+
+[odls-default:could-not-kill]
+WARNING: A process refused to die!
+
+Host: %s
+PID:  %d
+
+This process may still be running and/or consuming resources.
+
+[odls-default:could-not-send-kill]
+WARNING: A process refused the kill SIGTERM signal!
+         This should never happen unless the application is changing the
+         parent/child relationship permissions.
+
+Host:  %s
+PID:   %d
+Errno: %d
+
+This process may still be running and/or consuming resources.
+
+[orte-odls-default:execv-error]
+Could not execute the executable "%s": %s
+
+This could mean that your PATH or executable name is wrong, or that you do not
+have the necessary permissions.  Please ensure that the executable is able to be
+found and executed.
+
+#
+[nodeid-out-of-range]
+The id of a node is out of the allowed range.
+
+Value given: %ld
+Max value allowed: %ld
+
+This may be resolved by increasing the number of available node id's by
+re-configuring Open MPI with the --enable-jumbo-clusters option, and then
+re-running the application
+#
+[odls-default:multiple-paffinity-schemes]
+Multiple processor affinity schemes were specified (can only specify one):
+
+Slot list: %s
+opal_paffinity_alone:  true
+
+Please specify only the one desired method.
+#
+[odls-default:slot-list-failed]
+We were unable to successfully process/set the requested processor
+affinity settings:
+
+Specified slot list: %s
+Error: %s
+
+This could mean that a non-existent processor was specified, or
+that the specification had improper syntax.
+#
+[odls-default:invalid-node-rank]
+An invalid node rank was obtained - this is probably something
+that should be reported to the OMPI developers.
+#
+[odls-default:invalid-local-rank]
+An invalid local rank was obtained - this is probably something
+that should be reported to the OMPI developers.
+#
+[odls-default:invalid-phys-cpu]
+An invalid physical processor id was returned when attempting to
+set processor affinity - please check to ensure that your system
+supports such functionality. If so, then this is probably something
+that should be reported to the OMPI developers.
+#
+[odls-default:failed-set-paff]
+An attempt to set processor affinity has failed - please check to
+ensure that your system supports such functionality. If so, then
+this is probably something that should be reported to the OMPI developers.
+#
+[odls-default:topo-not-supported]
+An attempt was made to bind a process to a specific hardware topology
+mapping (e.g., binding to a socket) but the operating system does not
+support such topology-aware actions.  Talk to your local system
+administrator to find out if your system can support topology-aware
+functionality (e.g., Linux Kernels newer than v2.6.18).
+
+Systems that do not support processor topology-aware functionality cannot
+use "bind to socket" and other related functionality.
+
+  Local host:        %s
+  Action attempted:  %s %s
+  Application name:  %s
+#
+[odls-default:binding-not-avail]
+A request to bind the processes if the operating system supports
+such an operation was made, but the OS does not support this operation:
+
+  Local host:        %s
+  Action requested:  %s
+  Application name:  %s
+
+Because the request was made on an "if-available" basis, the job was
+launched without taking the requested action. If this is not the desired
+behavior, talk to your local system administrator to find out if your
+system can support the requested action.
+#
+[odls-default:not-enough-resources]
+Not enough %s were found on the local host to meet the requested
+binding action:
+
+  Local host:        %s
+  Action requested:  %s
+  Application name:  %s
+
+Please revise the request and try again.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-crcp-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-crcp-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-crcp-base.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for ORTE SNAPC framework.
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-base.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for OMPI DPM framework.
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-orte.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-orte.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-dpm-orte.txt	(revision 97)
@@ -0,0 +1,43 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2007      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[dpm-orte:no-server]
+Process rank %ld attempted to %s a global ompi_server that
+could not be contacted. This is typically caused by either not
+specifying the contact info for the server, or by the server not
+currently executing. If you did specify the contact info for a
+server, please check to see that the server is running and start
+it again (or have your sys admin start it) if it isn't.
+
+[dpm-orte:unknown-order]
+Process rank %ld attempted to lookup a value but provided an
+unrecognized order parameter. Order parameters are used to tell Open
+MPI if it should first look for the requested value locally (i.e., from
+the current job) or from a global ompi_server. Accepted order
+parameters are "local" and "global", respectively.
+
+[dpm-orte:too-many-orders]
+Process rank %ld attempted to lookup a value but provided too many
+order parameters (%ld found). Order parameters are used to tell
+Open MPI if it should first look for the requested value locally
+(i.e., from the current job) or from a global ompi_server. Accepted
+order parameters are "local" and "global", respectively, and each can
+only be specified once.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-pubsub-orte.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-pubsub-orte.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-pubsub-orte.txt	(revision 97)
@@ -0,0 +1,43 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2007      Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[pubsub-orte:no-server]
+Process rank %ld attempted to %s a global ompi_server that
+could not be contacted. This is typically caused by either not
+specifying the contact info for the server, or by the server not
+currently executing. If you did specify the contact info for a
+server, please check to see that the server is running and start
+it again (or have your sys admin start it) if it isn't.
+
+[pubsub-orte:unknown-order]
+Process rank %ld attempted to lookup a value but provided an
+unrecognized order parameter. Order parameters are used to tell Open
+MPI if it should first look for the requested value locally (i.e., from
+the current job) or from a global ompi_server. Accepted order
+parameters are "local" and "global", respectively.
+
+[pubsub-orte:too-many-orders]
+Process rank %ld attempted to lookup a value but provided too many
+order parameters (%ld found). Order parameters are used to tell
+Open MPI if it should first look for the requested value locally
+(i.e., from the current job) or from a global ompi_server. Accepted
+order parameters are "local" and "global", respectively, and each can
+only be specified once.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-server.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-server.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi-server.txt	(revision 97)
@@ -0,0 +1,27 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI's data server.
+#
+[ompiserver:usage]
+Start an Open MPI data server
+
+Usage: %s [OPTIONS]
+
+%s
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi_info.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi_info.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ompi_info.txt	(revision 97)
@@ -0,0 +1,35 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI ompi_info error
+# messages.
+#
+[usage]
+The ompi_info command can be used to provide detailed information on
+your Open MPI installation.  Syntax:
+
+%s
+[lib-call-fail]
+A library call unexpectedly failed.  This is a terminal error; please
+show this message to an Open MPI wizard:
+
+        Library call: %s
+         Source file: %s
+  Source line number: %d
+
+Aborting...
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-carto-file.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-carto-file.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-carto-file.txt	(revision 97)
@@ -0,0 +1,56 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2006 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2006-2007 Cisco Systems, Inc.  All rights reserved.
+# Copyright (c) 2007      Mellanox Technologies. All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI's OpenFabrics support
+# (the carto file).
+#
+
+[file not found]
+File %s: No such file or directory
+#
+
+[expected node type]
+File: %s line: %d expected Edge type (free string). received %s
+#
+
+[expected node name]
+File: %s line: %d expected Edge name (free string). received %s
+#
+
+[expected Connection]
+File: %s line: %d expected Edge branch (edge name:weight). received %s
+#
+
+[expected deceleration]
+File: %s line: %d expected Edge declaration (EDGE) or branch declaration (BRANCH). received %s
+#
+
+[incorrect connection]
+File: %s line: %d - %s - incorrect branch
+#
+
+[vertex not found]
+File: %s line: %d - Edge %s is not in the graph
+#
+
+[unknown token]
+File: %s line: %d - lexical analyzer returned 
+unknown value - %d
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-base.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for Open PAL CRS framework.
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-none.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-none.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-crs-none.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2008 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for Open PAL CRS framework.
+#
+[none:select-warning]
+Error: 'none' component selected.
+       Checkpoint/Restart functionality may not work properly. 
+       Make sure that you have configured with and are using a fully functional
+       CRS component.
+       To disable this warning set the following MCA parmeter:
+           --mca crs_none_select_warning 0
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-runtime.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-runtime.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-runtime.txt	(revision 97)
@@ -0,0 +1,30 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[opal_init:startup:internal-failure]
+It looks like opal_init failed for some reason; your parallel process is
+likely to abort.  There are many reasons that a parallel process can
+fail during opal_init; some of which are due to configuration or
+environment problems.  This failure appears to be an internal failure;
+here's some additional information (which may only be relevant to an
+Open MPI developer):
+
+  %s failed
+  --> Returned value %d instead of OPAL_SUCCESS
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-util.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-util.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-util.txt	(revision 97)
@@ -0,0 +1,37 @@
+# -*- text -*-
+#
+# Copyright (c) 2009 Cisco Systems, Inc.  All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[stacktrace signal override]
+Open MPI was insertting a signal handler for signal %d but noticed
+that there is already a non-default handler installer.  Open MPI's
+handler was therefore not installed; your job will continue.  This
+warning message will only be displayed once, even if Open MPI
+encounters this situation again.
+
+To avoid displaying this warning message, you can either not install
+the error handler for signal %d or you can have Open MPI not try to
+install its own signal handler for this signal by setting the
+"opal_signals" MCA parameter.
+
+  Signal: %d
+  Current opal_signal value: %s
+*
+[malformed IP address or netmask]
+Open MPI has detected at least one malformed IP address or netmask in
+the value of the opal_net_private_ipv4 MCA parameter.  The
+opal_net_private_ipv4 MCA parameter accepts a semicolon-delimited list
+of Classless Inter-Domain Routing (CIDR) notation specifications, each
+of the form <ipaddress>/<mask>.  For example:
+
+     10.0.0.0/8;172.16.0.0/12;192.168.0.0/16;169.254.0.0/16
+
+All malformed entries will be ignored; Open MPI will attempt to continue
+your job.  The first detected malformed entry was %s.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-wrapper.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-wrapper.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-opal-wrapper.txt	(revision 97)
@@ -0,0 +1,70 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2006      Sun Microsystems, Inc.  All rights reserved.
+#                         Use is subject to license terms.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI wrapper compiler error
+# messages.
+#
+[no-language-support]
+Unfortunately, this installation of Open MPI was not compiled with
+%s support.  As such, the %s compiler is non-functional.
+#
+[no-profiling-support]
+Warning: the "-lpmpi" flag was included on the command line,
+indicating use of MPI profiling layer.  However, Open MPI was not
+compiled with support for the MPI profiling layer.  This flag has
+therefore been ignored.
+#
+[no-compiler-found]
+The Open MPI wrapper compiler was unable to find the specified compiler
+%s in your PATH.
+
+Note that this compiler was either specified at configure time or in
+one of several possible environment variables.
+#
+[version]
+%s: %s %s (Language: %s)
+#
+[usage]
+%s [-showme[:<command,compile,link,incdirs,
+              libdirs,libs,version>]] args
+
+  -showme:command    Show command used to invoke real compiler
+  -showme:compile    Show flags added when compiling
+  -showme:link       Show flags added when linking
+  -showme:incdirs    Show list of include dirs added when compiling
+  -showme:libdirs    Show list of library dirs added when linking
+  -showme:libs       Show list of libraries added when linking
+  -showme:version    Show version of %s
+#
+[file-not-found]
+%s could not find the file %s, needed for %s support.
+This may indicate an incomplete install and linking will likely fail.
+#
+[spawn-failed]
+Unable to call the compiler (%s). The failure return the error
+%s.
+The failed command was [%s].
+#
+[compiler-failed]
+The child process (%s) exit with error %d.
+The failed command was [%s].
+#
+[multiple-bit-flags]
+%s: options -32 and -64 must be used independently
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-clean.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-clean.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-clean.txt	(revision 97)
@@ -0,0 +1,26 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI Clean tool
+#
+[usage]
+ompi-clean [OPTIONS]
+  Open MPI Runtime Environment Cleaning tool
+
+%s
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-base.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for ORTE FileM framework.
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-rsh.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-rsh.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-filem-rsh.txt	(revision 97)
@@ -0,0 +1,46 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for ORTE FileM framework.
+#
+[orte-filem-rsh:get-file-exists]
+WARNING: Could not preload specified file: File already exists.
+
+Fileset: %s
+Host: %s
+
+Will continue attempting to launch the process.
+
+[orte-filem-rsh:put-file-not-exist]
+WARNING: Could not preload specified file: File does not exist.
+
+Fileset: %s
+Host: %s
+
+Will continue attempting to launch the process.
+
+[orte-filem-rsh:remote-get-failed]
+WARNING: Remote peer (%s) failed to preload a file.
+
+Exit Status: %d
+Local  File: %s
+Remote File: %s
+Command:
+  %s
+
+Will continue attempting to launch the process(es).
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-iof.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-iof.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-iof.txt	(revision 97)
@@ -0,0 +1,36 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI IOF tool
+#
+[usage]
+orte-iof [OPTIONS]
+  Open MPI IO Forwarding Tool
+
+%s
+
+#
+[pid-required]
+The orte-iof tool requires the pid of the mpirun whose output
+you would like to monitor. This is needed to ensure that the
+tool contacts the correct mpirun when requesting access to the
+output from the specified ranks.
+
+Please use the --pid option to specify the mpirun's pid.
+#
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-odls-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-odls-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-odls-base.txt	(revision 97)
@@ -0,0 +1,43 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's ODLS Framework
+#
+[orte-odls-base:could-not-preload-binary]
+WARNING: Could not preload the binary file.
+
+Binary: %s
+
+Will continue attempting to launch the process.
+[orte-odls-base:could-not-preload-files]
+WARNING: Could not preload the files specified.
+
+Fileset: %s
+
+Will continue attempting to launch the process.
+[orte-odls-base:could-not-preload]
+WARNING: Could not preload the requested files and directories.
+
+Binary : %s
+Fileset: %s
+
+Will continue attempting to launch the process.
+
+#
+[orte-odls-base:xterm-rank-out-of-bounds]
+The xterm option was asked to display a rank that is larger
+than the number of procs in the job:
+
+Rank:     %d
+#procs:   %d
+
+Note that ranks start with 0, not 1, and must be specified
+accordingly.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-ps.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-ps.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-ps.txt	(revision 97)
@@ -0,0 +1,33 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI PS tool
+#
+[usage]
+ompi-ps [OPTIONS]
+  Open MPI Job and Process Status Tool
+
+%s
+
+[vpid-usage]
+Error: You specified a vpid (%d) without also specifying a jobid.
+       Use the '-j' option to specify a jobid.
+
+[invalid-vpid]
+Error: The specified vpid (%d) is not valid for job %d.
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-base.txt	(revision 97)
@@ -0,0 +1,86 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[orte-rmaps-base:alloc-error]
+There are not enough slots available in the system to satisfy the %d slots 
+that were requested by the application:
+  %s
+
+Either request fewer slots for your application, or make more slots available
+for use.
+[orte-rmaps-base:not-all-mapped-alloc]
+Some of the requested hosts are not included in the current allocation for the
+application:
+  %s
+The requested hosts were:
+  %s
+
+Verify that you have mapped the allocated resources properly using the 
+--host or --hostfile specification.
+[orte-rmaps-base:no-mapped-node]
+There are no allocated resources for the application 
+  %s
+that match the requested mapping:
+  %s
+
+Verify that you have mapped the allocated resources properly using the 
+--host or --hostfile specification.
+[orte-rmaps-base:nolocal-no-available-resources]
+There are no available nodes allocated to this job. This could be because
+no nodes were found or all the available nodes were already used.
+
+Note that since the -nolocal option was given no processes can be 
+launched on the local node.
+[orte-rmaps-base:no-available-resources]
+There are no nodes allocated to this job.
+[orte-rmaps-base:all-available-resources-used]
+All nodes which are allocated for this job are already filled.
+#
+[out-of-vpids]
+The system has exhausted its available ranks - the application is attempting
+to spawn too many daemons and will be aborted.
+
+This may be resolved by increasing the number of available ranks by
+re-configuring with the --enable-jumbo-apps option, and then
+re-building the application.
+#
+[rmaps:too-many-procs]
+Your job has requested a conflicting number of processes for the
+application:
+
+App: %s
+number of procs:  %d
+
+This is more processes than we can launch under the following
+additional directives and conditions:
+
+%s:   %d
+%s:   %d
+
+Please revise the conflict and try again.
+#
+[too-many-cpus-per-rank]
+Your job has requested more cpus per process(rank) than there
+are cpus in a socket:
+
+  Cpus/rank: %d
+  #cpus/socket: %d
+
+Please correct one or both of these values and try again.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-lb.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-lb.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-lb.txt	(revision 97)
@@ -0,0 +1,53 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[orte-rmaps-rr:alloc-error]
+There are not enough slots available in the system to satisfy the %d slots 
+that were requested by the application:
+  %s
+
+Either request fewer slots for your application, or make more slots available
+for use.
+[orte-rmaps-rr:multi-apps-and-zero-np]
+RMAPS found multiple applications to be launched, with
+at least one that failed to specify the number of processes to execute.
+When specifying multiple applications, you must specify how many processes
+of each to launch via the -np argument.
+
+[orte-rmaps-rr:per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to launch
+%d processes on a per-node basis - only %d nodes were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rr:n-per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to launch
+%d processes on a %d per-node basis - only %d nodes with a total of %d slots were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rr:n-per-node-and-not-enough-slots]
+There are not enough slots on the nodes in your allocation to satisfy your request to launch on a %d process-per-node basis - only %d slots/node were available.
+
+Either request fewer processes/node, or obtain a larger allocation.
+
+[orte-rmaps-rr:no-np-and-user-map]
+You have specified a rank-to-node/slot mapping, but failed to provide
+the number of processes to be executed. For some reason, this information
+could not be obtained from the mapping you provided, so we cannot continue
+with executing the specified application.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-rr.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-rr.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-rr.txt	(revision 97)
@@ -0,0 +1,53 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[orte-rmaps-rr:alloc-error]
+There are not enough slots available in the system to satisfy the %d slots 
+that were requested by the application:
+  %s
+
+Either request fewer slots for your application, or make more slots available
+for use.
+[orte-rmaps-rr:multi-apps-and-zero-np]
+RMAPS found multiple applications to be launched, with
+at least one that failed to specify the number of processes to execute.
+When specifying multiple applications, you must specify how many processes
+of each to launch via the -np argument.
+
+[orte-rmaps-rr:per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to launch
+%d processes on a per-node basis - only %d nodes were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rr:n-per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to launch
+%d processes on a %d per-node basis - only %d nodes with a total of %d slots were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rr:n-per-node-and-not-enough-slots]
+There are not enough slots on the nodes in your allocation to satisfy your request to launch on a %d process-per-node basis - only %d slots/node were available.
+
+Either request fewer processes/node, or obtain a larger allocation.
+
+[orte-rmaps-rr:no-np-and-user-map]
+You have specified a rank-to-node/slot mapping, but failed to provide
+the number of processes to be executed. For some reason, this information
+could not be obtained from the mapping you provided, so we cannot continue
+with executing the specified application.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-seq.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-seq.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-rmaps-seq.txt	(revision 97)
@@ -0,0 +1,43 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[orte-rmaps-seq:alloc-error]
+There are not enough slots available in the system to satisfy the %d slots 
+that were requested by the application:
+  %s
+
+Either request fewer slots for your application, or make more slots available
+for use.
+#
+[orte-rmaps-seq:resource-not-found]
+The specified hostfile contained a node (%s) that is not in your
+allocation. We therefore cannot map a process rank to it. Please
+check your allocation and hostfile to ensure the hostfile only
+contains allocated nodes.
+#
+[orte-rmaps-seq:not-enough-resources]
+The specified sequential mapping file does not have enough
+identified resources to meet the requested number of processes:
+
+  Num processes: %d
+  Num resources: %d
+
+Please provide additional resources or reduce the number of
+processes and try again.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-runtime.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-runtime.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-runtime.txt	(revision 97)
@@ -0,0 +1,43 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open MPI.
+#
+[orte_init:startup:internal-failure]
+It looks like orte_init failed for some reason; your parallel process is
+likely to abort.  There are many reasons that a parallel process can
+fail during orte_init; some of which are due to configuration or
+environment problems.  This failure appears to be an internal failure;
+here's some additional information (which may only be relevant to an
+Open MPI developer):
+
+  %s failed
+  --> Returned value %s (%d) instead of ORTE_SUCCESS
+#
+#
+[orte:session:dir:prohibited]
+The specified location for the temporary directories required by Open MPI
+is on the list of prohibited locations:
+
+Location given: %s
+Prohibited locations: %s
+
+If you believe this is in error, please contact your system administrator
+to have the list of prohibited locations changed. Otherwise, please identify
+a different location to be used (use -h to see the cmd line option), or
+simply let the system pick a default location.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-snapc-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-snapc-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orte-snapc-base.txt	(revision 97)
@@ -0,0 +1,20 @@
+ -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for ORTE SNAPC framework.
+#
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orted.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orted.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orted.txt	(revision 97)
@@ -0,0 +1,33 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orted.
+#
+[orted:usage]
+Usage: %s [OPTION]...
+Start an Open RTE Daemon
+
+%s
+[orted:environ]
+Open RTE Daemon was unable to set 
+ %s = %s
+in the environment. Returned value %d instead of ORTE_SUCCESS.
+[orted:init-failure]
+Open RTE was unable to initialize properly.  The error occured while
+attempting to %s.  Returned value %d instead of ORTE_SUCCESS.
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-orterun.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-orterun.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-orterun.txt	(revision 97)
@@ -0,0 +1,401 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# Copyright (c) 2007      Cisco Systems, Inc. All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[orterun:init-failure]
+Open RTE was unable to initialize properly.  The error occured while
+attempting to %s.  Returned value %d instead of ORTE_SUCCESS.
+[orterun:usage]
+%s (%s) %s
+
+Usage: %s [OPTION]...  [PROGRAM]...
+Start the given program using Open RTE
+
+%s
+
+Report bugs to %s
+[orterun:version]
+%s (%s) %s
+
+Report bugs to %s
+[orterun:allocate-resources]
+%s was unable to allocate enough resources to start your application.
+This might be a transient error (too many nodes in the cluster were
+unavailable at the time of the request) or a permenant error (you
+requsted more nodes than exist in your cluster).
+
+While probably only useful to Open RTE developers, the error returned
+was %d.
+[orterun:error-spawning]
+%s was unable to start the specified application.  An attempt has been
+made to clean up all processes that did start.  The error returned was
+%d.
+[orterun:appfile-not-found]
+Unable to open the appfile:
+
+    %s
+
+Double check that this file exists and is readable.
+[orterun:executable-not-specified]
+No executable was specified on the %s command line.
+
+Aborting.
+[orterun:multi-apps-and-zero-np]
+%s found multiple applications specified on the command line, with
+at least one that failed to specify the number of processes to execute.
+When specifying multiple applications, you must specify how many processes
+of each to launch via the -np argument.
+[orterun:nothing-to-do]
+%s could not find anything to do.
+
+It is possible that you forgot to specify how many processes to run
+via the "-np" argument.
+[orterun:call-failed]
+%s encountered a %s call failure.  This should not happen, and
+usually indicates an error within the operating system itself.
+Specifically, the following error occurred:
+
+    %s
+
+The only other available information that may be helpful is the errno
+that was returned: %d.
+[orterun:environ]
+%s was unable to set
+ %s = %s
+in the environment. Returned value %d instead of ORTE_SUCCESS.
+[orterun:precondition]
+%s was unable to precondition transports
+Returned value %d instead of ORTE_SUCCESS.
+[orterun:attr-failed]
+%s was unable to define an attribute
+Returned value %d instead of ORTE_SUCCESS.
+#
+[orterun:proc-ordered-abort]
+%s has exited due to process rank %lu with PID %lu on
+node %s calling "abort". This may have caused other processes
+in the application to be terminated by signals sent by %s
+(as reported here).
+#
+[orterun:proc-exit-no-sync]
+%s has exited due to process rank %lu with PID %lu on
+node %s exiting without calling "finalize". This may
+have caused other processes in the application to be
+terminated by signals sent by %s (as reported here).
+#
+[orterun:proc-exit-no-sync-unknown]
+%s has exited due to a process exiting without calling "finalize",
+but has no info as to the process that caused that situation. This
+may have caused other processes in the application to be
+terminated by signals sent by %s (as reported here).
+#
+[orterun:proc-aborted]
+%s noticed that process rank %lu with PID %lu on node %s exited on signal %d.
+#
+[orterun:proc-aborted-unknown]
+%s noticed that the job aborted, but has no info as to the process
+that caused that situation.
+#
+[orterun:proc-aborted-signal-unknown]
+%s noticed that the job aborted by signal, but has no info as
+to the process that caused that situation.
+#
+[orterun:proc-aborted-strsignal]
+%s noticed that process rank %lu with PID %lu on node %s exited on signal %d (%s).
+#
+[orterun:abnormal-exit]
+WARNING: %s has exited before it received notification that all
+started processes had terminated.  You should double check and ensure
+that there are no runaway processes still executing.
+#
+[orterun:sigint-while-processing]
+WARNING: %s is in the process of killing a job, but has detected an
+interruption (probably control-C).
+
+It is dangerous to interrupt %s while it is killing a job (proper
+termination may not be guaranteed).  Hit control-C again within 1
+second if you really want to kill %s immediately.
+#
+[orterun:empty-prefix]
+A prefix was supplied to %s that only contained slashes.  
+
+This is a fatal error; %s will now abort.  No processes were launched.
+#
+[debugger-mca-param-not-found]
+Internal error -- the orte_base_user_debugger MCA parameter was not able to
+be found.  Please contact the Open RTE developers; this should not
+happen.
+#
+[debugger-orte_base_user_debugger-empty]
+The MCA parameter "orte_base_user_debugger" was empty, indicating that
+no user-level debuggers have been defined.  Please set this MCA
+parameter to a value and try again.
+#
+[debugger-not-found]
+A suitable debugger could not be found in your PATH.  Check the values
+specified in the orte_base_user_debugger MCA parameter for the list of
+debuggers that was searched.
+#
+[debugger-exec-failed]
+%s was unable to launch the specified debugger.  This is what was
+launched:
+
+    %s
+
+Things to check:
+
+    - Ensure that the debugger is installed properly
+    - Ensure that the "%s" executable is in your path
+    - Ensure that any required licenses are available to run the debugger
+#
+[orterun:sys-limit-pipe]
+%s was unable to launch the specified application as it encountered an error:
+
+Error: system limit exceeded on number of pipes that can be open
+Node: %s
+
+when attempting to start process rank %lu.
+
+This can be resolved by setting the mca parameter opal_set_max_sys_limits to 1,
+increasing your limit descriptor setting (using limit or ulimit commands),
+asking the system administrator for that node to increase the system limit, or 
+by rearranging your processes to place fewer of them on that node.
+#
+[orterun:sys-limit-sockets]
+Error: system limit exceeded on number of network connections that can be open
+
+This can be resolved by setting the mca parameter opal_set_max_sys_limits to 1,
+increasing your limit descriptor setting (using limit or ulimit commands),
+or asking the system administrator to increase the system limit.
+#
+[orterun:pipe-setup-failure]
+%s was unable to launch the specified application as it encountered an error:
+
+Error: pipe function call failed when setting up I/O forwarding subsystem
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:sys-limit-children]
+%s was unable to launch the specified application as it encountered an error:
+
+Error: system limit exceeded on number of processes that can be started
+Node: %s
+
+when attempting to start process rank %lu.
+
+This can be resolved by either asking the system administrator for that node to
+increase the system limit, or by rearranging your processes to place fewer of them
+on that node.
+#
+[orterun:failed-term-attrs]
+%s was unable to launch the specified application as it encountered an error:
+
+Error: reading tty attributes function call failed while setting up I/O forwarding system
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:wdir-not-found]
+%s was unable to launch the specified application as it could not change to the
+specified working directory:
+
+Working directory: %s
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:exe-not-found]
+%s was unable to launch the specified application as it could not find an executable:
+
+Executable: %s
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:exe-not-accessible]
+%s was unable to launch the specified application as it could not access
+or execute an executable:
+
+Executable: %s
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:pipe-read-failure]
+%s was unable to launch the specified application as it encountered an error:
+
+Error: reading from a pipe function call failed while spawning a local process
+Node: %s
+
+while attempting to start process rank %lu.
+#
+[orterun:proc-failed-to-start]
+%s was unable to start the specified application as it encountered an error:
+
+Error name: %s
+Node: %s
+
+when attempting to start process rank %lu.
+#
+[orterun:proc-failed-to-start-no-status]
+%s was unable to start the specified application as it encountered an error
+on node %s. More information may be available above.
+#
+[orterun:proc-failed-to-start-no-status-no-node]
+%s was unable to start the specified application as it encountered an error.
+More information may be available above.
+#
+[debugger requires -np]
+The number of MPI processes to launch was not specified on the command
+line.
+
+The %s debugger requires that you specify a number of MPI processes to
+launch on the command line via the "-np" command line parameter.  For
+example:
+
+    %s -np 4 %s
+
+Skipping the %s debugger for now.
+#
+[debugger requires executable]
+The %s debugger requires that you specify an executable on the %s
+command line; you cannot specify application context files when
+launching this job in the %s debugger.  For example:
+
+    %s -np 4 my_mpi_executable
+
+Skipping the %s debugger for now.
+#
+[debugger only accepts single app]
+The %s debugger only accepts SPMD-style launching; specifying an
+MPMD-style launch (with multiple applications separated via ':') is
+not permitted.
+
+Skipping the %s debugger for now.
+#
+[orterun:daemon-died-during-execution]
+%s has detected that a required daemon terminated during execution
+of the application with a non-zero status. This is a fatal error.
+A best-effort attempt has been made to cleanup. However, it is
+-strongly- recommended that you execute the orte-clean utility
+to ensure full cleanup is accomplished.
+#
+[orterun:no-orted-object-exit]
+%s was unable to determine the status of the daemons used to
+launch this application. Additional manual cleanup may be required.
+Please refer to the "orte-clean" tool for assistance.
+#
+[orterun:unclean-exit]
+%s was unable to cleanly terminate the daemons on the nodes shown
+below. Additional manual cleanup may be required - please refer to
+the "orte-clean" tool for assistance.
+#
+[orterun:event-def-failed]
+%s was unable to define an event required for proper operation of
+the system. The reason for this error was:
+
+Error: %s
+
+Please report this to the Open MPI mailing list users@open-mpi.org.
+#
+[orterun:ompi-server-filename-bad]
+%s was unable to parse the filename where contact info for the
+ompi-server was to be found. The option we were given was:
+
+--ompi-server %s
+
+This appears to be missing the required ':' following the
+keyword "file". Please remember that the correct format for this
+command line option is:
+
+--ompi-server file:path-to-file
+
+where path-to-file can be either relative to the cwd or absolute.
+#
+[orterun:ompi-server-filename-missing]
+%s was unable to parse the filename where contact info for the
+ompi-server was to be found. The option we were given was:
+
+--ompi-server %s
+
+This appears to be missing a filename following the ':'. Please
+remember that the correct format for this command line option is:
+
+--ompi-server file:path-to-file
+
+where path-to-file can be either relative to the cwd or absolute.
+#
+[orterun:ompi-server-filename-access]
+%s was unable to access the filename where contact info for the
+ompi-server was to be found. The option we were given was:
+
+--ompi-server %s
+
+Please remember that the correct format for this command line option is:
+
+--ompi-server file:path-to-file
+
+where path-to-file can be either relative to the cwd or absolute, and that
+you must have read access permissions to that file.
+#
+[orterun:ompi-server-file-bad]
+%s was unable to read the ompi-server's contact info from the
+given filename. The filename we were given was:
+
+FILE: %s
+
+Please remember that the correct format for this command line option is:
+
+--ompi-server file:path-to-file
+
+where path-to-file can be either relative to the cwd or absolute, and that
+the file must have a single line in it that contains the Open MPI
+uri for the ompi-server. Note that this is *not* a standard uri, but
+a special format used internally by Open MPI for communications. It can
+best be generated by simply directing the ompi-server to put its
+uri in a file, and then giving %s that filename.
+[orterun:multiple-hostfiles]
+Error: More than one hostfile was passed for a single application context, which
+is not supported at this time.
+#
+[orterun:conflicting-params]
+%s has detected multiple instances of an MCA param being specified on
+the command line, with conflicting values:
+
+MCA param: %s
+Value 1: %s
+Value 2: %s
+
+This MCA param does not support multiple values, and the system is unable
+to identify which value was intended. If this was done in error, please
+re-issue the command with only one value. You may wish to review the
+output from ompi_info for guidance on accepted values for this param.
+
+[orterun:server-not-found]
+%s was instructed to wait for the requested ompi-server, but was unable to
+establish contact with the server during the specified wait time:
+
+Server uri:  %s
+Timeout time: %ld
+
+Error received: %s
+
+Please check to ensure that the requested server matches the actual server
+information, and that the server is in operation.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-base.txt	(revision 97)
@@ -0,0 +1,90 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2006 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2006 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+[no-available-pls]
+No available launching agents were found.
+
+This is an unusual error; it means that Open RTE was unable to find
+any mechanism to launch proceses, and therefore is unable to start the
+process(es) required by your application.
+#
+[daemon-died-no-signal]
+A daemon (pid %s) died unexpectedly with status %d while attempting
+to launch so we are aborting.
+
+There may be more information reported by the environment (see above).
+
+This may be because the daemon was unable to find all the needed shared
+libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
+location of the shared libraries on the remote nodes and this will
+automatically be forwarded to the remote nodes.
+#
+[daemon-died-signal-core]
+A daemon (pid %s) died unexpectedly on signal %d (with core) while
+attempting to launch so we are aborting.
+
+There may be more information reported by the environment (see above).
+
+This may be because the daemon was unable to find all the needed shared
+libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
+location of the shared libraries on the remote nodes and this will
+automatically be forwarded to the remote nodes.
+#
+[daemon-died-signal]
+A daemon (pid %s) died unexpectedly on signal %d  while attempting to
+launch so we are aborting.
+
+There may be more information reported by the environment (see above).
+
+This may be because the daemon was unable to find all the needed shared
+libraries on the remote node. You may set your LD_LIBRARY_PATH to have the
+location of the shared libraries on the remote nodes and this will
+automatically be forwarded to the remote nodes.
+#
+[incomplete-exit-cmd]
+One or more daemons could not be ordered to exit. This can be caused by a
+number of rather rare problems, but typically is caused by a daemon having
+died due to the failure of a node or its communications. This could result
+in an incomplete cleanup on the affected nodes. Please see below for a list
+of nodes which may require additional cleanup.
+
+We are truly sorry for the inconvenience.
+#
+[incomplete-kill-procs-cmd]
+One or more daemons could not be ordered to kill their local processes.
+This can be caused by a number of rather rare problems, but typically
+is caused by a daemon having died due to the failure of a node or its
+communications. This could result in an incomplete cleanup on the affected
+nodes. Additional information may be available below.
+
+We are truly sorry for the inconvenience.
+#
+[stdin-target-out-of-range]
+The requested stdin target is out of range for this job - it points
+to a process rank that is greater than the number of processes in the
+job.
+
+Specified target: %s
+Number of procs: %s
+
+This could be caused by specifying a negative number for the stdin
+target, or by mistyping the desired rank. Remember that MPI ranks begin
+with 0, not 1.
+
+Please correct the cmd line and try again.
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-rsh.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-rsh.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-rsh.txt	(revision 97)
@@ -0,0 +1,77 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for Open RTE's orterun.
+#
+[no-local-orted]
+The rsh PLS component was not able to find the executable "orted" in
+your PATH or in the directory where Open MPI/OpenRTE was initially installed,
+and therefore cannot continue.
+
+For reference, your current PATH is:
+
+  %s
+
+We also looked for orted in the following directory:
+
+  %s
+
+[multiple-prefixes]
+Specified multiple application contexts using different
+settings for --prefix. Care should be taken, that corresponding
+processes are mapped to different nodes. Having multiple prefixes
+per node is not allowed.
+
+The previously set prefix was
+  %s
+
+the prefix to be set overriding:
+  %s
+
+[concurrency-less-than-zero]
+The value of the MCA parameter "pls_rsh_num_concurrent" is less than
+or equal to zero (%d).  This parameter is used to determine how many
+remote agents (typically rsh or ssh) to invoke concurrently while
+launching parallel jobs.  
+
+This value has automatically be reset to 1; processing will continue.
+
+[deadlock-params]
+The rsh launcher has been given a number of %d concurrent daemons to
+launch and is in a debug-daemons option. However, the total number of
+daemons to launch (%d) is greater than this value. This is a scenario that
+will cause the system to deadlock.
+
+To avoid deadlock, either increase the number of concurrent daemons, or
+remove the debug-daemons flag.
+
+[unknown-user]
+The user (%d) is unknown to the system (i.e. there is no corresponding
+entry in the password file). Please contact your system administrator
+for a fix.
+#
+[cannot-resolve-shell-with-prefix]
+The rsh launcher has been given a prefix to use, but could not determine
+the type of remote shell being used on the remote node. This is a fatal
+error as we cannot determine how to construct the cmd line to set your
+remote LD_LIBRARY_PATH and PATH environmental variables.
+
+The prefix we were given are:
+
+opal_prefix: %s
+prefix_dir: %s
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-slurm.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-slurm.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-plm-slurm.txt	(revision 97)
@@ -0,0 +1,41 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+[multiple-prefixes]
+The SLURM process starter for Open MPI does not support multiple
+different --prefix options to mpirun.  You can specify at most one
+unique value for the --prefix option (in any of the application
+contexts); it will be applied to all the application contexts of your
+parallel job.
+
+Put simply, you must have Open MPI installed in the same location on
+all of your SLURM nodes.
+
+Multiple different --prefix options were specified to mpirun.  This is
+a fatal error for the SLURM process starter in Open MPI.
+
+The first two prefix values supplied were:
+    %s
+and %s
+#
+[no-hosts-in-list]
+The SLURM process starter for Open MPI didn't find any hosts in
+the map for this application. This can be caused by a lack of
+an allocation, or by an error in the Open MPI code. Please check
+to ensure you have a SLURM allocation. If you do, then please pass
+the error to the Open MPI user's mailing list for assistance.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-base.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-base.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-base.txt	(revision 97)
@@ -0,0 +1,35 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English general help file for the RAS base.
+#
+[ras-base:no-allocation]
+We were unable to find an allocation for this job as required by
+setting the "allocation required" flag. Please ensure you have
+the necessary allocation before executing again.
+
+If you wish to execute without a provided allocation (e.g., by
+providing a user-specified hostfile), please ensure that the "allocation
+required" flag is not set. This flag can be set in several forms, so
+please check that none of the following exist:
+
+MCA param file: orte_allocation_required = 1
+Environment: OMPI_MCA_orte_allocation_required=1
+Cmd line: -mca orte_allocation_required 1
+
+
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-slurm.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-slurm.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-ras-slurm.txt	(revision 97)
@@ -0,0 +1,44 @@
+# -*- text -*-
+#
+# Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
+#                         University Research and Technology
+#                         Corporation.  All rights reserved.
+# Copyright (c) 2004-2005 The University of Tennessee and The University
+#                         of Tennessee Research Foundation.  All rights
+#                         reserved.
+# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart, 
+#                         University of Stuttgart.  All rights reserved.
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+# 
+# Additional copyrights may follow
+# 
+# $HEADER$
+#
+# This is the US/English help file for Open MPI MCA error messages.
+#
+[slurm-env-var-not-found]
+While trying to determine what resources are available, the SLURM
+resource allocator expects to find the following environment variables:
+
+    SLURM_NODELIST
+    SLURM_TASKS_PER_NODE
+    
+However, it was unable to find the following environment variable:
+
+    %s
+
+#This is a fatal error.
+[slurm-env-var-bad-value]
+While trying to determine what resources are available, the SLURM
+resource allocator uses the following environment variables:
+
+    SLURM_NODELIST       value: %s
+    SLURM_TASKS_PER_NODE value: %s
+    
+However, an error was encountered when trying to parse the following variable:
+
+    %s
+
+#This is a fatal error.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/help-rmaps_rank_file.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/help-rmaps_rank_file.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/help-rmaps_rank_file.txt	(revision 97)
@@ -0,0 +1,106 @@
+# Copyright (c) 2004-2005 The Regents of the University of California.
+#                         All rights reserved.
+# $COPYRIGHT$
+#
+# Additional copyrights may follow
+#
+# $HEADER$
+#
+# This is the US/English general help file for rankle utilities.
+#
+# Voltaire
+[no-rankfile]
+Open RTE was unable to open the rankfile:
+    %s
+Check to make sure the path and filename are correct.
+
+usage:  mpirun mca rmaps_rankfile_path rankfile ./app
+
+all unspecified by rankfile ranks are assigned using
+byslot or bynode policy.
+
+example:  cat hosfile
+    host1
+    host2
+    host3
+    host4
+          cat rankfile
+    rank 1=host1 slot=1:0,1
+    rank 0=host2 slot=0:*
+    rank 2=host4 slot=1-2
+    rank 3=host3 slot=0:1,1:0-2
+
+[parse_error_string]
+Open RTE detected a parse error in the rankfile (%s)
+It occured on line number %d on token %d:
+    %s
+
+[parse_error_int]
+Open RTE detected a parse error in the rankfile (%s)
+It occured on line number %d on token %d:
+    %d
+
+[parse_error]
+Open RTE detected a parse error in the rankfile (%s)
+It occured on line number %d on token %d.
+
+[not-all-mapped-alloc]
+Some of the requested ranks are not included in the current allocation.
+    %s
+
+Please verify that you have specified the allocated resources properly in
+the provided rankfile.
+
+[bad-host]
+Rankfile claimed host %s that was not allocated or oversubscribed it's slots.
+Please review your rank-slot assignments and your host allocation to ensure
+a proper match.
+
+[bad-index]
+Rankfile claimed host %s by index that is bigger than number of allocated hosts.
+
+[orte-rmaps-rf:alloc-error]
+There are not enough slots available in the system to satisfy the %d slots
+that were requested by the application:
+    %s
+
+Either request fewer slots for your application, or make more slots available
+for use.
+
+[bad-rankfile]
+Error, invalid rank (%d) in the rankfile (%s)
+
+[bad-assign]
+Error, rank %d is already assigned to %s, check %s
+
+[bad-syntax]
+Error, invalid syntax in the rankfile (%s)
+syntax must be the fallowing
+rank i=host_i slot=string
+ex: rank 1=host1 slot=1:0,1
+
+[orte-rmaps-rf:multi-apps-and-zero-np]
+RMAPS found multiple applications to be launched, with
+at least one that failed to specify the number of processes to execute.
+When specifying multiple applications, you must specify how many processes
+of each to launch via the -np argument.
+
+[orte-rmaps-rf:per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to
+launch
+%d processes on a per-node basis - only %d nodes were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rf:n-per-node-and-too-many-procs]
+There are not enough nodes in your allocation to satisfy your request to
+launch
+%d processes on a %d per-node basis - only %d nodes with a total of %d slots
+%were available.
+
+Either request fewer processes, or obtain a larger allocation.
+[orte-rmaps-rf:n-per-node-and-not-enough-slots]
+There are not enough slots on the nodes in your allocation to satisfy your
+request to launch on a %d process-per-node basis - only %d slots/node were
+available.
+
+Either request fewer processes/node, or obtain a larger allocation.
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,1 @@
+link mpic++-vt-wrapper-data.txt
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpiCC-wrapper-data.txt	(revision 97)
@@ -0,0 +1,1 @@
+link mpic++-wrapper-data.txt
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,21 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=C++
+compiler_flags_env=CXXFLAGS
+compiler=vtcxx
+extra_includes=
+preprocessor_flags= 
+compiler_flags=-pthread 
+linker_flags=    -m64
+libs=-lmpi_cxx -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpic++-wrapper-data.txt	(revision 97)
@@ -0,0 +1,22 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=C++
+compiler_env=CXX
+compiler_flags_env=CXXFLAGS
+compiler=ppu-g++
+extra_includes=
+preprocessor_flags= 
+compiler_flags=-pthread 
+linker_flags=    -m64
+libs=-lmpi_cxx -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,21 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=C
+compiler_flags_env=CFLAGS
+compiler=vtcc
+extra_includes=
+preprocessor_flags= 
+compiler_flags=-pthread -m64
+linker_flags=    -m64
+libs=-lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpicc-wrapper-data.txt	(revision 97)
@@ -0,0 +1,22 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=C
+compiler_env=CC
+compiler_flags_env=CFLAGS
+compiler=ppu-gcc
+extra_includes=
+preprocessor_flags= 
+compiler_flags=-pthread -m64
+linker_flags=    -m64
+libs=-lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,1 @@
+link mpic++-vt-wrapper-data.txt
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpicxx-wrapper-data.txt	(revision 97)
@@ -0,0 +1,1 @@
+link mpic++-wrapper-data.txt
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,21 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=Fortran 77
+compiler_flags_env=FFLAGS
+compiler=vtf77
+extra_includes=
+preprocessor_flags=
+compiler_flags= -m64
+linker_flags=    -m64
+libs=-lmpi_f77 -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=not supported
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpif77-wrapper-data.txt	(revision 97)
@@ -0,0 +1,22 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=Fortran 77
+compiler_env=F77
+compiler_flags_env=FFLAGS
+compiler=
+extra_includes=
+preprocessor_flags=
+compiler_flags= -m64
+linker_flags=    -m64
+libs=-lmpi_f77 -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=not supported
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-vt-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-vt-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-vt-wrapper-data.txt	(revision 97)
@@ -0,0 +1,22 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=Fortran 90
+compiler_flags_env=FCFLAGS
+compiler=vtf90
+module_option=
+extra_includes=
+preprocessor_flags=
+compiler_flags= -m64 
+linker_flags=    -m64
+libs=-lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=not supported
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/openmpi/mpif90-wrapper-data.txt	(revision 97)
@@ -0,0 +1,23 @@
+# There can be multiple blocks of configuration data, chosen by
+# compiler flags (using the compiler_args key to chose which block
+# should be activated.  This can be useful for multilib builds.  See the
+# multilib page at:
+#    https://svn.open-mpi.org/trac/ompi/wiki/compilerwrapper3264 
+# for more information.
+
+project=Open MPI
+project_short=OMPI
+version=1.4
+language=Fortran 90
+compiler_env=FC
+compiler_flags_env=FCFLAGS
+compiler=
+module_option=
+extra_includes=
+preprocessor_flags=
+compiler_flags=  
+linker_flags=    -m64
+libs=-lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal   -ldl   -Wl,--export-dynamic -lnsl -lutil -lm -ldl 
+required_file=not supported
+includedir=${includedir}
+libdir=${libdir}
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/FILTER.SPEC
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/FILTER.SPEC	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/FILTER.SPEC	(revision 97)
@@ -0,0 +1,20 @@
+# VampirTrace region filter specification
+#
+# call limit definitions and region assignments
+#
+# syntax: <regions> -- <limit>
+#
+#   regions    semicolon-seperated list of regions
+#              (can be wildcards)
+#   limit      assigned call limit
+#               0 = region(s) denied
+#              -1 = unlimited
+#
+# example:
+#
+# add;sub;mul;div -- 1000
+# * -- 3000000
+#
+# These region filter directives cause that the functions "add", "sub",
+# "mul" and "div" be recorded at most 1000 times. The remaining
+# functions (*) will be recorded at most 3000000 times. 
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/GROUPS.SPEC
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/GROUPS.SPEC	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/GROUPS.SPEC	(revision 97)
@@ -0,0 +1,18 @@
+# VampirTrace region groups specification
+#
+# group definitions and region assignments
+#
+# syntax: <group>=<regions>
+#
+#   group      group name 
+#   regions    semicolon-seperated list of regions
+#              (can be wildcards)
+#
+# example:
+#
+# CALC=add;sub;mul;div
+# USER=app_*
+#
+# These group assignments make the functions "add", "sub", "mul" and "div"
+# associated with group "CALC" and all functions with the prefix "app_" are
+# associated with group "USER".
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/METRICS.SPEC
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/METRICS.SPEC	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/METRICS.SPEC	(revision 97)
@@ -0,0 +1,324 @@
+# VampirTrace metrics specification
+#
+# measurement definitions complement/extend native (and PAPI preset) definitions
+# measured metrics derive from a single measured counter (in principle)
+# all measure definitions are considered equivalent
+# (though some may be platform-specific)
+
+### generic (PAPI) measurement aliases
+
+### level 1 cache accesses
+measure L1_ACCESS   = PAPI_L1_TCA
+measure L1_I_ACCESS = PAPI_L1_ICA
+measure L1_D_ACCESS = PAPI_L1_DCA
+
+### level 1 cache reads
+measure L1_READ     = PAPI_L1_TCR
+measure L1_I_READ   = PAPI_L1_ICR # equivalent to PAPI_L1_ICA
+measure L1_D_READ   = PAPI_L1_DCR
+
+### level 1 cache writes
+measure L1_WRITE    = PAPI_L1_TCW
+measure L1_I_WRITE  = PAPI_L1_ICW # never defined
+measure L1_D_WRITE  = PAPI_L1_DCW
+
+### level 1 cache hits
+measure L1_HIT      = PAPI_L1_TCH
+measure L1_I_HIT    = PAPI_L1_ICH
+measure L1_D_HIT    = PAPI_L1_DCH
+
+### level 1 cache misses
+measure L1_MISS     = PAPI_L1_TCM
+measure L1_I_MISS   = PAPI_L1_ICM
+measure L1_D_MISS   = PAPI_L1_DCM
+measure L1_D_READ_MISS = PAPI_L1_LDM
+measure L1_D_WRITE_MISS = PAPI_L1_STM
+
+### alternate level 1 cache representation
+measure L1_INST       = PAPI_L1_ICA
+measure L1_INST_HIT   = PAPI_L1_ICH
+measure L1_INST_MISS  = PAPI_L1_ICM
+measure L1_LOAD       = PAPI_L1_DCR
+measure L1_LOAD_HIT   = PAPI_L1_LDH # non-standard
+measure L1_LOAD_MISS  = PAPI_L1_LDM
+measure L1_STORE      = PAPI_L1_DCW
+measure L1_STORE_HIT  = PAPI_L1_STH # non-standard
+measure L1_STORE_MISS = PAPI_L1_STM
+
+### level 2 cache accesses
+measure L2_ACCESS   = PAPI_L2_TCA
+measure L2_I_ACCESS = PAPI_L2_ICA
+measure L2_D_ACCESS = PAPI_L2_DCA
+
+### level 2 cache reads
+measure L2_READ     = PAPI_L2_TCR
+measure L2_I_READ   = PAPI_L2_ICR # equivalent to PAPI_L2_ICA
+measure L2_D_READ   = PAPI_L2_DCR
+
+### level 2 cache writes
+measure L2_WRITE    = PAPI_L2_TCW
+measure L2_I_WRITE  = PAPI_L2_ICW # never defined
+measure L2_D_WRITE  = PAPI_L2_DCW
+
+### level 2 cache hits
+measure L2_HIT      = PAPI_L2_TCH
+measure L2_I_HIT    = PAPI_L2_ICH
+measure L2_D_HIT    = PAPI_L2_DCH
+
+### level 2 cache misses
+measure L2_MISS     = PAPI_L2_TCM
+measure L2_I_MISS   = PAPI_L2_ICM
+measure L2_D_MISS   = PAPI_L2_DCM
+measure L2_D_READ_MISS = PAPI_L2_LDM
+measure L2_D_WRITE_MISS = PAPI_L2_STM
+
+### alternate level 2 cache representation
+measure L2_INST       = PAPI_L2_ICA
+measure L2_INST_HIT   = PAPI_L2_ICH
+measure L2_INST_MISS  = PAPI_L2_ICM
+measure L2_LOAD       = PAPI_L2_DCR
+measure L2_LOAD_HIT   = PAPI_L2_LDH # non-standard
+measure L2_LOAD_MISS  = PAPI_L2_LDM
+measure L2_STORE      = PAPI_L2_DCW
+measure L2_STORE_HIT  = PAPI_L2_STH # non-standard
+measure L2_STORE_MISS = PAPI_L2_STM
+
+### level 3 cache accesses
+measure L3_ACCESS   = PAPI_L3_TCA
+measure L3_I_ACCESS = PAPI_L3_ICA
+measure L3_D_ACCESS = PAPI_L3_DCA
+
+### level 3 cache reads
+measure L3_READ     = PAPI_L3_TCR
+measure L3_I_READ   = PAPI_L3_ICR # equivalent to PAPI_L3_ICA
+measure L3_D_READ   = PAPI_L3_DCR
+
+### level 3 cache writes
+measure L3_WRITE    = PAPI_L3_TCW
+measure L3_I_WRITE  = PAPI_L3_ICW # never defined
+measure L3_D_WRITE  = PAPI_L3_DCW
+
+### level 3 cache hits
+measure L3_HIT      = PAPI_L3_TCH
+measure L3_I_HIT    = PAPI_L3_ICH
+measure L3_D_HIT    = PAPI_L3_DCH
+
+### level 3 cache misses
+measure L3_MISS     = PAPI_L3_TCM
+measure L3_I_MISS   = PAPI_L3_ICM
+measure L3_D_MISS   = PAPI_L3_DCM
+measure L3_D_READ_MISS = PAPI_L3_LDM
+measure L3_D_WRITE_MISS = PAPI_L3_STM
+
+### alternate level 3 cache representation
+measure L3_INST       = PAPI_L3_ICA
+measure L3_INST_HIT   = PAPI_L3_ICH
+measure L3_INST_MISS  = PAPI_L3_ICM
+measure L3_LOAD       = PAPI_L3_DCR
+measure L3_LOAD_HIT   = PAPI_L3_LDH # non-standard
+measure L3_LOAD_MISS  = PAPI_L3_LDM
+measure L3_STORE      = PAPI_L3_DCW
+measure L3_STORE_HIT  = PAPI_L3_STH # non-standard
+measure L3_STORE_MISS = PAPI_L3_STM
+
+### TLB misses
+measure TLB_MISS   = PAPI_TLB_TL
+measure TLB_I_MISS = PAPI_TLB_IM
+measure TLB_D_MISS = PAPI_TLB_DM
+
+### instructions
+measure INSTRUCTION    = PAPI_TOT_INS
+measure INTEGER        = PAPI_INT_INS
+measure FLOATING_POINT = PAPI_FP_INS
+measure FP_ADD         = PAPI_FAD_INS
+measure FP_MUL         = PAPI_FML_INS
+measure FP_FMA         = PAPI_FMA_INS
+measure FP_DIV         = PAPI_FDV_INS
+measure FP_INV         = PAPI_FNV_INS
+measure FP_SQRT        = PAPI_FSQ_INS
+measure VECTOR         = PAPI_VEC_INS
+measure SYNCH          = PAPI_SYC_INS
+measure LOAD_STORE     = PAPI_LST_INS
+measure LOAD           = PAPI_LD_INS
+measure STORE          = PAPI_SR_INS
+measure COND_STORE           = PAPI_CSR_TOT
+measure COND_STORE_SUCCESS   = PAPI_CSR_SUC
+measure COND_STORE_UNSUCCESS = PAPI_CSR_FAL
+measure BRANCH               = PAPI_BR_INS
+measure UNCOND_BRANCH        = PAPI_BR_UCN
+measure COND_BRANCH          = PAPI_BR_CN
+measure COND_BRANCH_TAKEN    = PAPI_BR_TKN
+measure COND_BRANCH_NOTTAKEN = PAPI_BR_NTK
+measure COND_BRANCH_PRED     = PAPI_BR_PRC
+measure COND_BRANCH_MISPRED  = PAPI_BR_MSP
+
+### cycles
+measure CYCLES = PAPI_TOT_CYC
+
+### idle units
+measure INTEGER_UNIT_IDLE   = PAPI_FXU_IDL
+measure FLOAT_UNIT_IDLE     = PAPI_FPU_IDL
+measure BRANCH_UNIT_IDLE    = PAPI_BRU_IDL
+measure LOADSTORE_UNIT_IDLE = PAPI_LSU_IDL
+
+### stalls
+measure STALL_MEMORY_ACCESS = PAPI_MEM_SCY
+measure STALL_MEMORY_READ   = PAPI_MEM_RCY
+measure STALL_MEMORY_WRITE  = PAPI_MEM_WCY
+measure STALL_INST_ISSUE    = PAPI_STL_ICY
+
+# platform-specific measurement aliases
+# (complement or redefine generic measurement aliases)
+# may need to key to particular platform if ambiguity
+
+### POWER4-specific metrics
+measure FP_LOAD  = PM_LSU_LDF
+measure FP_STORE = PM_FPU_STF
+measure FP_MISC  = PM_FPU_FMOV_FEST
+
+### UltraSPARC-III/IV-specific metrics
+measure STALL_L1_MISS    = Re_DC_miss # /1
+measure STALL_L2_MISS    = Re_EC_miss # /1
+measure STALL_IC_MISS    = Dispatch0_IC_miss # /0
+measure STALL_STOREQ     = Rstall_storeQ # /0
+measure STALL_IU_USE     = Rstall_IU_use # /0
+measure STALL_FP_USE     = Rstall_FP_use # /1
+measure STALL_PC_MISS    = Re_PC_miss # /1
+measure STALL_RAW_MISS   = Re_RAW_miss # /1
+measure STALL_FPU_BYPASS = Re_FPU_bypass # /1
+measure STALL_MISPRED    = Dispatch0_mispred # /1
+measure STALL_BR_TARGET  = Dispatch0_br_target # /0
+measure STALL_2ND_BR     = Dispatch0_2nd_br # /0
+measure STALL_L1_MSOVHD  = Re_DC_missovhd # /1
+
+### groupings of metrics for collective measurement
+
+### Opteron groupings (max 4 in group, unrestricted)
+aggroup OPTERON_DC1 = DC_ACCESS DC_MISS DC_L2_REFILL_I DC_SYS_REFILL_I
+aggroup OPTERON_DC2 = DC_L2_REFILL_M DC_L2_REFILL_O DC_L2_REFILL_E DC_L2_REFILL_S
+aggroup OPTERON_DC3 = DC_SYS_REFILL_M DC_SYS_REFILL_O DC_SYS_REFILL_E DC_SYS_REFILL_S
+aggroup OPTERON_IC  = IC_FETCH IC_MISS IC_L2_REFILL IC_SYS_REFILL
+aggroup OPTERON_TLB = DC_L1_DTLB_MISS_AND_L2_DTLB_MISS DC_L1_DTLB_MISS_AND_L2_DTLB_HIT IC_L1ITLB_MISS_AND_L2ITLB_MISS IC_L1ITLB_MISS_AND_L2ITLB_HIT
+
+aggroup OPTERON_BR  = FR_BR FR_BR_MIS FR_BR_TAKEN FR_BR_TAKEN_MIS
+aggroup OPTERON_FP  = FP_ADD_PIPE FP_MULT_PIPE FP_ST_PIPE FP_FAST_FLAG
+aggroup OPTERON_FPU = FR_FPU_X87 FR_FPU_MMX_3D FR_FPU_SSE_SSE2_PACKED FR_FPU_SSE_SSE2_SCALAR
+
+aggroup OPTERON_ST1 = IC_FETCH_STALL FR_DECODER_EMPTY FR_DISPATCH_STALLS FR_DISPATCH_STALLS_FULL_FPU
+aggroup OPTERON_ST2 = FR_DISPATCH_STALLS_FULL_LS FR_DISPATCH_STALLS_FULL_REORDER FR_DISPATCH_STALLS_FULL_RESERVATION FR_DISPATCH_STALLS_BR
+aggroup OPTERON_ST3 = FR_DISPATCH_STALLS_FAR FR_DISPATCH_STALLS_SER FR_DISPATCH_STALLS_SEG FR_DISPATCH_STALLS_QUIET
+
+aggroup OPTERON_ETC = FR_X86_INS CPU_CLK_UNHALTED FR_HW_INTS FP_NONE_RET
+aggroup OPTERON_HTM = HT_LL_MEM_XFR HT_LR_MEM_XFR HT_RL_MEM_XFR
+aggroup OPTERON_HTI = HT_LL_IO_XFR HT_LR_IO_XFR HT_RL_IO_XFR
+
+### POWER4-specific groupings (max 8 in group, restricted)
+aggroup POWER4_DC  = PM_DATA_FROM_L2 PM_DATA_FROM_L25_SHR PM_DATA_FROM_L25_MOD PM_DATA_FROM_L275_SHR PM_DATA_FROM_L275_MOD PM_DATA_FROM_L3 PM_DATA_FROM_L35 PM_DATA_FROM_MEM # 5
+aggroup POWER4_IC  = PM_INST_FROM_PREF PM_INST_FROM_L1 PM_INST_FROM_L2 PM_INST_FROM_L25_L275 PM_INST_FROM_L3 PM_INST_FROM_L35 PM_INST_FROM_MEM # 6
+aggroup POWER4_L1  = PM_LD_REF_L1 PM_LD_MISS_L1 PM_ST_REF_L1 PM_ST_MISS_L1 # 56
+aggroup POWER4_TLB = PM_ITLB_MISS PM_DTLB_MISS
+aggroup POWER4_LX  = PM_ITLB_MISS PM_DTLB_MISS PM_LD_REF_L1 PM_LD_MISS_L1 PM_ST_REF_L1 PM_ST_MISS_L1 # 56
+aggroup POWER4_BR  = PM_BR_ISSUED PM_BR_MPRED_CR PM_BR_MPRED_TA # 3,55,61
+aggroup POWER4_BRT = PM_BR_ISSUED PM_BR_MPRED_CR PM_BR_MPRED_TA PM_BIQ_IDU_FULL_CYC PM_BRQ_FULL_CYC PM_L1_WRITE_CYC PM_INST_CMPL PM_CYC # 55
+aggroup POWER4_LSF = PM_FPU_STF PM_LSU_LDF # 15,54,60
+aggroup POWER4_STL = PM_CYC PM_FPU_FULL_CYC PM_FPU_STALL3 # 54
+aggroup POWER4_LST = PM_INST_CMPL PM_FPU_STF PM_LSU_LDF PM_CYC PM_FPU_FULL_CYC PM_FPU_STALL3 # 54
+aggroup POWER4_FP  = PM_FPU_FIN PM_FPU_FMA PM_FPU_FDIV PM_FPU_FSQRT PM_FPU_FMOV_FEST # 53
+aggroup POWER4_IFP = PM_FPU_FIN PM_FPU_FMA PM_FPU_FDIV PM_FPU_FSQRT PM_FPU_FMOV_FEST PM_FXU_FIN # 53
+aggroup POWER4_II  = PM_INST_DISP PM_INST_CMPL # 1,2,18,20
+
+### MIPS-R1200 groupings (max 32 in group, unrestricted)
+aggroup R12000_ALL = TLB_misses primary_data_cache_misses secondary_data_cache_misses primary_instruction_cache_misses secondary_instruction_cache_misses graduated_instructions mispredicted_branches graduated_loads graduated_stores graduated_floating-point_instructions decoded_instructions cycles prefetch_primary_data_cache_misses
+aggroup R12000_ALL_PAPI = PAPI_L1_DCM PAPI_L1_ICM PAPI_L2_DCM PAPI_L2_ICM PAPI_TLB_TL PAPI_TOT_INS PAPI_FP_INS PAPI_LD_INS PAPI_SR_INS PAPI_TOT_IIS PAPI_BR_CN PAPI_BR_MSP PAPI_CSR_TOT PAPI_CSR_FAL PAPI_TOT_CYC PAPI_PRF_DM PAPI_CA_INV PAPI_CA_ITV
+
+### UltraSPARC-III/IV groupings (max 2 in group, restricted)
+aggroup US3_CPI = Cycle_cnt Instr_cnt                   # duplicates
+
+# cycles/stalls groups
+aggroup US3_SMP = Dispatch_rs_mispred Dispatch0_mispred # stall misprediction
+aggroup US3_SUS = Rstall_IU_use Rstall_FP_use           # stall IU/FP use
+aggroup US3_SST = Rstall_storeQ Re_RAW_miss             # stall store
+aggroup US3_SCD = Cycle_cnt Re_DC_miss
+aggroup US3_SCO = Dispatch0_br_target Re_DC_missovhd
+aggroup US3_SCE = Dispatch0_2nd_br Re_EC_miss
+aggroup US3_SCP = Dispatch0_IC_miss Re_PC_miss
+aggroup US3_SCX = SI_ciq_flow Re_FPU_bypass       # Re_FPU_bypass always zero?
+
+# instruction and TLB groups
+aggroup US3_FPU = FA_pipe_completion FM_pipe_completion
+aggroup US3_BMS = IU_Stat_Br_miss_taken IU_Stat_Br_miss_untaken
+aggroup US3_BCS = IU_Stat_Br_count_taken IU_Stat_Br_count_untaken
+aggroup US3_ITL = Instr_cnt ITLB_miss
+aggroup US3_DTL = Cycle_cnt DTLB_miss
+
+# memory and cache groups
+aggroup US3_ICH = IC_ref IC_miss
+aggroup US3_DCR = DC_rd DC_rd_miss
+aggroup US3_DCW = DC_wr DC_wr_miss
+aggroup US3_ECI = EC_write_hit_RTO EC_ic_miss
+aggroup US3_ECM = EC_rd_miss EC_misses 
+
+# locality/SSM and other miscellaneous groups
+aggroup US3_ECL = EC_miss_local EC_miss_remote          # only SF15000/SF25000
+aggroup US3_ECX = EC_wb_remote EC_miss_mtag_remote      # only SF15000/SF25000
+aggroup US3_ECW = EC_ref EC_wb
+aggroup US3_ECS = EC_snoop_inv EC_snoop_cb
+aggroup US3_PCR = PC_port0_rd PC_port1_rd
+aggroup US3_ETC = SI_snoop PC_MS_misses
+aggroup US3_WCM = SI_owned WC_miss
+
+# memory controller groups
+aggroup US3_SM1 = MC_stalls_0 MC_stalls_1
+aggroup US3_SM2 = MC_stalls_2 MC_stalls_3
+aggroup US3_MC0 = MC_reads_0 MC_writes_0
+aggroup US3_MC1 = MC_reads_1 MC_writes_1
+aggroup US3_MC2 = MC_reads_2 MC_writes_2
+aggroup US3_MC3 = MC_reads_3 MC_writes_3
+
+### Itanium2 groupings (max 4 in group, partially restricted)
+aggroup ITANIUM2_TLB = ITLB_MISSES_FETCH_L1ITLB ITLB_MISSES_FETCH_L2ITLB L2DTLB_MISSES L1DTLB_TRANSFER
+aggroup ITANIUM2_BR  = BRANCH_EVENT BR_MISPRED_DETAIL_ALL_CORRECT_PRED BR_MISPRED_DETAIL_ALL_WRONG_PATH BR_MISPRED_DETAIL_ALL_WRONG_TARGET
+aggroup ITANIUM2_STL = DISP_STALLED BACK_END_BUBBLE_ALL BE_EXE_BUBBLE_ALL BE_EXE_BUBBLE_FRALL
+
+aggroup ITANIUM2_L1D = DATA_REFERENCES_SET1 L1D_READS_SET1 L1D_READ_MISSES_ALL L2_DATA_REFERENCES_L2_ALL
+aggroup ITANIUM2_L2D = L2_DATA_REFERENCES_L2_DATA_READS L2_DATA_REFERENCES_L2_DATA_WRITES L3_READS_DATA_READ_ALL L3_WRITES_DATA_WRITE_ALL
+aggroup ITANIUM2_L3D = L3_READS_DATA_READ_HIT L3_READS_DATA_READ_MISS L3_WRITES_DATA_WRITE_HIT L3_WRITES_DATA_WRITE_MISS
+aggroup ITANIUM2_LXD = L2_MISSES L3_REFERENCES L3_READS_ALL_MISS L3_WRITES_ALL_MISS
+aggroup ITANIUM2_LXX = L3_MISSES L3_WRITES_L2_WB_HIT L3_WRITES_L2_WB_MISS
+
+aggroup ITANIUM2_ICD = L1I_READS L2_INST_DEMAND_READS L3_READS_DINST_FETCH_HIT L3_READS_DINST_FETCH_MISS # instruction cache (demand-load only)
+aggroup ITANIUM2_ICP = L1I_PREFETCHES L2_INST_PREFETCHES L3_READS_INST_FETCH_HIT L3_READS_INST_FETCH_MISS # instruction cache (incl. prefetch)
+
+aggroup ITANIUM2_IN1 = INST_DISPERSED IA32_INST_RETIRED IA64_INST_RETIRED LOADS_RETIRED
+aggroup ITANIUM2_IN2 = FP_OPS_RETIRED LOADS_RETIRED CPU_CYCLES ISA_TRANSITIONS
+aggroup ITANIUM2_ISA = IA32_INST_RETIRED IA64_INST_RETIRED IA32_ISA_TRANSITIONS STORES_RETIRED
+aggroup ITANIUM2_FLP = CPU_CYCLES FP_OPS_RETIRED INST_DISPERSED LOADS_RETIRED
+
+### compositions are derived by combining measurements and create hierarchies
+### **** generic hierarchy ****
+
+### cycles (including stalls)
+compose CYCLES = BUSY + STALL + IDLE
+compose STALL = DISPATCH + UNIT_USE + RECIRCULATE
+
+### instructions
+compose INSTRUCTION = BRANCH + INTEGER + FLOATING_POINT + MEMORY
+compose BRANCH = BRANCH_PRED + BRANCH_MISP
+compose FLOATING_POINT = FP_ADD + FP_MUL + FP_FMA + FP_DIV + FP_INV + FP_SQRT + FP_MISC
+compose MEMORY = LOAD + STORE + SYNCH
+
+### data accesses (to cache hierarchy & memory)
+compose DATA_ACCESS = DATA_HIT_L1$ + DATA_HIT_L2$ + DATA_HIT_L3$ + DATA_HIT_MEM
+compose DATA_HIT_L1$ = DATA_STORE_INTO_L1$ + DATA_LOAD_FROM_L1$
+compose DATA_HIT_L2$ = DATA_STORE_INTO_L2$ + DATA_LOAD_FROM_L2$
+compose DATA_HIT_L3$ = DATA_STORE_INTO_L3$ + DATA_LOAD_FROM_L3$
+compose DATA_HIT_MEM = DATA_STORE_INTO_MEM + DATA_LOAD_FROM_MEM
+
+### instruction accesses (to cache hierarchy & memory)
+compose INST_ACCESS = INST_HIT_PREF + INST_HIT_L1$ + INST_HIT_L2$ + INST_HIT_L3$ + INST_HIT_MEM
+
+### TLB accesses (instruction & data)
+compose TLB_ACCESS = DATA_TLB_ACCESS + INST_TLB_ACCESS
+compose DATA_TLB_ACCESS = DATA_TLB_HIT + DATA_TLB_MISS
+compose INST_TLB_ACCESS = INST_TLB_HIT + INST_TLB_MISS
+
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/ChangeLog
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/ChangeLog	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/ChangeLog	(revision 97)
@@ -0,0 +1,265 @@
+5.4.10
+	- reduced list of supported MPI implementations to Open MPI
+	  (support for other MPI implementations are available in the latest
+	   stand-alone release of VampirTrace;
+	   see http://www.tu-dresden.de/zih/vampirtrace/)
+	- changed meaning of configure option '--with-openmpi': this option
+	  indicates an Open MPI internal build
+	- fixed a bug in Fortran MPI wrappers: added conversion for MPI_BOTTOM
+	  and MPI_IN_PLACE
+
+5.4.9
+	- updated version of internal OTF to 1.3.12 (see extlib/otf/ChangeLog)
+	- added support for cycle counter timer on Alpha and Sparc platforms
+	- install header files to 'PREFIX/include/vampirtrace' by default to
+	  avoid conflicts with the OpenMPI integrated version of VT
+	- added configure option '--with[out]-bfd' to control usage of BFD
+	  library to get symbol information for GNU, Intel, and Pathscale
+	  compiler instrumentation
+	- fixed detection of Sun Studio compiler on Linux for automatic
+	  instrumentation
+	- fixed faulty searching for matching filter directive
+
+5.4.8
+	- added wrapper for MPI function 'MPI_Init_thread'
+	- fixed potential segmentation fault during shutdown the trace
+	  environment after tracing C++ programs
+	- replaced usage of PATH_MAX by VT_PATH_MAX to avoid compile errors
+	  on some platforms
+
+5.4.7
+	  (the cycle counter timer is not available on all Linux platforms)
+	- added configure check for header file 'asm/intrinsics.h' and
+	  definition of '_IA64_REG_AR_ITC' which are required to use the
+	  ITC timer on IA64/Linux
+	- fixed faulty timer selection in configure
+	- fixed compile error on RedHat/CentOS due to missing header include
+	  of 'cctype.h' in the sources of 'vtunify'
+
+5.4.6
+	- updated version of internal OTF to 1.3.11 (see extlib/otf/ChangeLog)
+	- added support for Cray CNL
+	- added support for automatic instrumentation by using Pathscale
+	  compiler (version 3.1 or higher required)
+	- fixed a bug in vtfilter where the tool dies when a counter appears
+	  outside of function
+	- fixed faulty shell comparison in configure which may cause an	infinite
+	  loop
+	- bugfix: added configure check for I/O functions functions 'fseeko()'
+	  (this function is not available on NEC SX platforms)
+	- enhancement to OPARI (see tools/opari/ChangeLog:14,15)
+
+5.4.5
+	- updated version of internal OTF to 1.3.10 (see extlib/otf/ChangeLog)
+	- fixed a bug for LIBC's I/O tracing: argument of 'fileno()' must be
+	  a valid file stream
+	- added configure option '--[enable|disable]-binaries' to control
+	  building of binaries (useful for multi-lib installations)
+
+5.4.4
+	- updated version of internal OTF to 1.3.9 (see extlib/otf/ChangeLog)
+	- fixed a portability bug: use own implementation of function
+	  'strdup()'
+	- removed variadic macros (they were introduced in C99)
+	- fixed potential race condition by using OpenMP + LIBC's I/O tracing
+	- fixed potential missing definition records by using OpenMP and the
+	  maximum number of buffer flushes was reached
+	- fixed a bug in the compiler wrappers: added check for SUN's OpenMP
+	  compiler flag (-xopenmp)
+	- fixed a bug for determining the timer-resolution for ITC
+	- added process group definition for MPI communicator MPI_COMM_SELF
+	- cleanup call stack when maximum number of flushes was reached
+	- added check if we can link '-lz' in order to pass either '-lotf -lz'
+	  or just '-lotf' as OTF link option
+	- renamed configure's option '--with[out]-mpi-io' to
+	  '[enable/disable]-mpi-io' for more consistent
+
+5.4.3
+	- bugfix for Fortran compiler wrappers (vtf77, vtf90):
+	  OPARI's table source file (opari.tab.c) will be compiled
+	  with the C compiler and flags which were given for VT's
+	  configure (CC/CFLAGS)
+	  (changeable in vt*-wrapper-data.txt)
+	- bugfixes in vtunify:	- keep user's created process groups
+				  for MPI communicators
+				- reserve sorting of global process group
+				  definitions
+
+5.4.2
+	- bugfix for VPATH builds
+	- added check for PAPI version to configure script
+	  (only support for version 3.x)
+
+5.4.1
+	- bugfix: added check for I/O functions which are a part of the large
+	  file extensions (e.g. open64, creat64, ...); disable corresponding
+	  wrapper functions, if system doesn't support these
+	- added environment variable VT_DEMANGLE to enable/disable GNU
+	  demangling of C++ names (default: disabled, due to a bug in older
+	  versions of the GNU library 'liberty')
+	- disabled support for I/O tracing on MacOS
+
+5.4.0
+	- updated version of internal OTF to 1.3.8 (see extlib/otf/ChangeLog)
+	- added support for user defined counters
+	- if available, PAPI cycle counter can be used as timer
+	  (see config.h after configure)
+	- recording of events will be stopped if the maximum number of
+	  buffer flushes (env. VT_MAX_FLUSHES) was reached
+	- added support for LIBC's I/O tracing
+	- improved autoconf's m4 scripts for cross buildings
+	- default settings for the compiler wrappers will be stored
+	  in share/vampirtrace/vt*-wrapper-data.txt
+	- vtfilter: - direct filtering without second trace run
+	            - parallelization using OpenMP
+
+5.3.2
+	- updated version of internal OTF to 1.3.7 (see extlib/otf/ChangeLog)
+	- improved autoconf's m4 scripts for cross buildings
+	- added support for VPATH builds
+
+5.3.1
+	- set default trace call limit for all regions/functions to 100000
+
+5.3.0
+	- updated version of internal OTF to 1.3.4 (see extlib/otf/ChangeLog)
+	- added support for automatic instrumentation by using Intel compiler
+	  version 10.x (uses new compiler flag '-finstrument-functions')
+	- added support for binary instrumentation by using Dyninst
+	- added support for GLIBC's memory allocation tracing
+	  (see doc/UserManual*)
+	- bugfix: corrected process id for OpenMP collective operations
+	- changed default function/region group from 'USR' to 'Application'
+	- if only MPI-functions are instrumented, then entry-record of
+	  function 'user' will be generated before MPI_Init
+	- added trace filter generator tool 'vtfilter'
+	  (see doc/USAGE.vtfilter)
+	- added support for multiple compiler-instrumentations from one
+	  installation of VampirTrace (see INSTALL)
+	- replaced vtinst, vtinst-pomp, and vtinst-dyn by VT's compiler
+	  wrapper (see doc/UserManual* and doc/USAGE.compinst)
+	- added simple example applications
+	- changed install directory of documentations from '$prefix/info'
+	  to '$prefix/share/vampirtrace/doc'
+	- changed install directory of metrics-, filter-, and grouping
+	  configuration from '$prefix/doc' to '$prefix/share/vampirtrace'
+
+5.2.5
+	- fixed potentially race condition by tracing OpenMP apps.
+	- fixed some little memory leaks
+	- fixed native counter issue on IA64 systems
+	- added check for header files 'stdint.h' and 'inttypes.h'; if none of
+	  these files found, then own integer types will be defined
+
+5.2.4
+	- updated version of internal OTF to 1.2.19 (see extlib/otf/ChangeLog)
+	- fixed compile error, which occurred by using old SUN compilers
+	- added a configure summary
+	- added HP MPI support
+	- renamed Fortran MPI wrapper library to 'libvt.fmpi' to avoid possible
+	  name conflicts
+	- fixed a bug (integer overflow) in mechanism for getting timer on
+	  Linux systems
+
+5.2.3
+	- changed install directory of documentations from 'doc' to 'info'
+	  (adjustable by configure option '--infodir')
+	- forward configure options '--exec-prefix', '--bindir', '--libdir', ',
+	  '--includedir', and '--infodir' to configure command of internal OTF
+	- added checking for CPP-Style Fortran preprocessor of gfortran
+	- added checking for location of 'mmtimer.h'
+	- made sure that peers of events (e.g. msg. send enter + msg. send)
+	  have the same timestamp
+	- clock synchronization can be forced
+	  (see config.h after configure)
+
+5.2.2
+	- fixed a bug in region filter which occurred by tracing OpenMP apps.
+	  instrumented by compiler (vtinst)
+	- added option '-k' for vtunify to keep input trace files
+
+5.2.1
+	- fixed several performance issues
+	- improved mechanism for getting clock cycles on IBM PPC64 machines
+	- the user can specify the mechanism, which used for getting timer
+	  (only for Linux, SGI Altix, IBM AIX, Cray X1
+	   - see config.h after configure)
+
+5.2.0
+	- updated version of internal OTF to 1.2.18 (see extlib/otf/ChangeLog)
+	- replaced build system by GNU Autoconf/Automake
+	- changed base name (e.g. environment variables, source files) to VT...
+	  (see doc/USAGE)
+	- added OpenMP support by using OPARI instrumentation tool
+	- write process group records, which contain the location of processes
+	  (node name)
+	- added tool 'vtconfig' to simplify determining the right compiler and
+	  linker flags
+
+5.1.7
+	- updated version of internal OTF to 1.2.13
+
+5.1.6
+	- updated version of internal OTF to 1.2.11
+	- fixed a bug: record the REAL buffer-length of a MPI non-blocking 
+	  receive operation
+	- added wrapper for MPI function 'MPI_Probe'
+	- added Open MPI support
+	- added a simple "configure" command
+	  (see INSTALL)
+
+5.1.5
+	- fixed a bug in elg_otfunify time synchronization
+
+5.1.4
+	- updated version of internal OTF to 1.1.9
+	- fixed a bug in elg_otfunify which occurred if compiled with PGI
+	  and used OMP parallelization
+	- enhanced progress display of elg_otfunify
+
+5.1.3
+	- fixed little bugs in build system, which occurred if multiple
+	  mode building used (Makefile.32-64)
+	- added support for clusters of IBM Power3/4 machines
+	  and Linux PPC cluster with IBM compilers
+
+5.1.2
+	- updated version of internal OTF to 1.1.8
+
+5.1.1
+	- write list of filtered regions to file (*.x.filt)
+	- specified flags of 'ar' in Makefile.defs (AFLAG) will
+	  be assign to internal OTF configure script
+
+5.1.0
+	- counter event record will be wrote before leave event record
+	- added region filter and grouping managment
+
+5.0.6
+	- added creator informations of tracefile (tracelib, version, date
+	  and time)
+	- reduced offset of process group token
+	- improved name of process groups
+
+5.0.5
+	- fixed a bug in elg_otfunify which occurred if the environment
+	  variable ELG_PFORM_DIR was set
+
+5.0.4
+	- fixed a bug which occurred on Opteron systems (faulty timestamps)
+	- made sure that the ids of process groups and processes are
+	  different (for analyzing trace files)
+
+5.0.3
+	- updated version of internal OTF to 1.1.5
+	- fixed a bug in GNU compiler interface which might have caused
+	  a segmentation fault during flushing the trace buffer
+
+5.0.2
+	- updated version of internal OTF to 1.1.4
+
+5.0.1
+	- updated version of internal OTF to 1.1.3
+
+5.0.0
+	- initial version
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/LICENSE
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/LICENSE	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/LICENSE	(revision 97)
@@ -0,0 +1,33 @@
+Copyright (c) 2005-2008, ZIH, TU Dresden, Federal Republic of Germany
+
+Copyright (c) 1998-2005, Forschungszentrum Juelich, Juelich Supercomputing
+                         Centre, Federal Republic of Germany
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution.
+
+- Neither the name of ZIH, TU Dresden or Forschungszentrum Juelich, Juelich
+Supercomputing Centre nor the names of its contributors may be used to endorse
+or promote products derived from this software without pecific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/UserManual.html
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/UserManual.html	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/UserManual.html	(revision 97)
@@ -0,0 +1,2161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<!--Converted with LaTeX2HTML 2002-2-1 (1.71)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>UserManual</TITLE>
+<META NAME="description" CONTENT="UserManual">
+<META NAME="keywords" CONTENT="UserManual">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+
+<META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
+<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
+
+<STYLE>
+/* Century Schoolbook font is very similar to Computer Modern Math: cmmi */
+.MATH    { font-family: "Century Schoolbook", serif; }
+.MATH I  { font-family: "Century Schoolbook", serif; font-style: italic }
+.BOLDMATH { font-family: "Century Schoolbook", serif; font-weight: bold }
+
+/* implement both fixed-size and relative sizes */
+SMALL.XTINY		{ font-size : xx-small }
+SMALL.TINY		{ font-size : x-small  }
+SMALL.SCRIPTSIZE	{ font-size : smaller  }
+SMALL.FOOTNOTESIZE	{ font-size : small    }
+SMALL.SMALL		{  }
+BIG.LARGE		{  }
+BIG.XLARGE		{ font-size : large    }
+BIG.XXLARGE		{ font-size : x-large  }
+BIG.HUGE		{ font-size : larger   }
+BIG.XHUGE		{ font-size : xx-large }
+
+/* heading styles */
+H1		{  }
+H2		{  }
+H3		{  }
+H4		{  }
+H5		{  }
+
+/* mathematics styles */
+DIV.displaymath		{ }	/* math displays */
+TD.eqno			{ }	/* equation-number cells */
+
+
+/* document-specific styles come next */
+DIV.navigation		{   }
+PRE.preform		{   }
+SPAN.textit		{ font-style: italic  }
+SPAN.arabic		{   }
+SPAN.textbf		{ font-weight: bold  }
+
+BODY { font-family: sans-serif }
+</STYLE>
+
+</HEAD>
+
+<BODY >
+
+<P>
+
+<P>
+<B><BIG CLASS="XHUGE">VampirTrace 5.4.10 User Manual</BIG></B>
+<BR>
+<BR>
+<BR>
+TU Dresden
+<BR>
+Center for Information Services and 
+<BR>
+High Performance Computing (ZIH)
+<BR>
+01062 Dresden
+<BR>
+Germany
+<BR>
+<BR><TT><A NAME="tex2html1"
+  HREF="http://www.tu-dresden.de/zih/">http://www.tu-dresden.de/zih/</A></TT>
+<BR><TT><A NAME="tex2html2"
+  HREF="http://www.tu-dresden.de/zih/vampirtrace/">http://www.tu-dresden.de/zih/vampirtrace/</A></TT>
+<BR>
+<BR>
+E-Mail: <TT><A NAME="tex2html3"
+  HREF="vampirsupport@zih.tu-dresden.de">vampirsupport@zih.tu-dresden.de</A></TT>
+<P>
+<BR>
+
+<H2><A NAME="SECTION00100000000000000000">
+Contents</A>
+</H2>
+<!--Table of Contents-->
+
+<UL CLASS="TofC">
+<LI><A NAME="tex2html54"
+  HREF="UserManual.html#SECTION00200000000000000000">Introduction</A>
+<LI><A NAME="tex2html55"
+  HREF="UserManual.html#SECTION00300000000000000000">Instrumentation</A>
+<UL>
+<LI><A NAME="tex2html56"
+  HREF="UserManual.html#SECTION00310000000000000000">The Compiler Wrappers</A>
+<LI><A NAME="tex2html57"
+  HREF="UserManual.html#SECTION00320000000000000000">Instrumentation Types</A>
+<LI><A NAME="tex2html58"
+  HREF="UserManual.html#SECTION00330000000000000000">Automatic Instrumentation</A>
+<UL>
+<LI><A NAME="tex2html59"
+  HREF="UserManual.html#SECTION00331000000000000000">Notes for Using the GNU, Intel, or Pathscale Compiler</A>
+<LI><A NAME="tex2html60"
+  HREF="UserManual.html#SECTION00332000000000000000">Known License Issues with BFD</A>
+<LI><A NAME="tex2html61"
+  HREF="UserManual.html#SECTION00333000000000000000">Notes on Instrumentation of Inline Functions</A>
+</UL>
+<LI><A NAME="tex2html62"
+  HREF="UserManual.html#SECTION00340000000000000000">Manual Instrumentation using the VampirTrace API</A>
+<LI><A NAME="tex2html63"
+  HREF="UserManual.html#SECTION00350000000000000000">Manual Instrumentation using POMP</A>
+<LI><A NAME="tex2html64"
+  HREF="UserManual.html#SECTION00360000000000000000">Binary instrumentation using Dyninst</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html65"
+  HREF="UserManual.html#SECTION00400000000000000000">Runtime Measurement</A>
+<UL>
+<LI><A NAME="tex2html66"
+  HREF="UserManual.html#SECTION00410000000000000000">Environment Variables</A>
+<LI><A NAME="tex2html67"
+  HREF="UserManual.html#SECTION00420000000000000000">Influencing Trace File Size</A>
+<LI><A NAME="tex2html68"
+  HREF="UserManual.html#SECTION00430000000000000000">Unification of local Traces</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html69"
+  HREF="UserManual.html#SECTION00500000000000000000">Recording additional Events and Counters</A>
+<UL>
+<LI><A NAME="tex2html70"
+  HREF="UserManual.html#SECTION00510000000000000000">PAPI Hardware Performance Counters</A>
+<LI><A NAME="tex2html71"
+  HREF="UserManual.html#SECTION00520000000000000000">Memory Allocation Counters</A>
+<LI><A NAME="tex2html72"
+  HREF="UserManual.html#SECTION00530000000000000000">Application I/O Calls</A>
+<LI><A NAME="tex2html73"
+  HREF="UserManual.html#SECTION00540000000000000000">User Defined Counters</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html74"
+  HREF="UserManual.html#SECTION00600000000000000000">Filtering &amp; Grouping</A>
+<UL>
+<LI><A NAME="tex2html75"
+  HREF="UserManual.html#SECTION00610000000000000000">Function Filtering</A>
+<LI><A NAME="tex2html76"
+  HREF="UserManual.html#SECTION00620000000000000000">Function Grouping</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html77"
+  HREF="UserManual.html#SECTION00700000000000000000">Command Reference</A>
+<UL>
+<LI><A NAME="tex2html78"
+  HREF="UserManual.html#SECTION00710000000000000000">Compiler Wrappers (vtcc,vtcxx,vtf77,vtf90)</A>
+<LI><A NAME="tex2html79"
+  HREF="UserManual.html#SECTION00720000000000000000">Local Trace Unifier (vtunify)</A>
+<LI><A NAME="tex2html80"
+  HREF="UserManual.html#SECTION00730000000000000000">Dyninst Mutator (vtdyn)</A>
+<LI><A NAME="tex2html81"
+  HREF="UserManual.html#SECTION00740000000000000000">Trace Filter Tool (vtfilter)</A>
+</UL>
+<BR>
+<LI><A NAME="tex2html82"
+  HREF="UserManual.html#SECTION00800000000000000000">PAPI Counter Specifications</A>
+<LI><A NAME="tex2html83"
+  HREF="UserManual.html#SECTION00900000000000000000">VampirTrace Installation</A>
+<UL>
+<LI><A NAME="tex2html84"
+  HREF="UserManual.html#SECTION00910000000000000000">Basics</A>
+<LI><A NAME="tex2html85"
+  HREF="UserManual.html#SECTION00920000000000000000">Configure Options</A>
+<LI><A NAME="tex2html86"
+  HREF="UserManual.html#SECTION00930000000000000000">Cross Compilation</A>
+<LI><A NAME="tex2html87"
+  HREF="UserManual.html#SECTION00940000000000000000">Environment Set-Up</A>
+<LI><A NAME="tex2html88"
+  HREF="UserManual.html#SECTION00950000000000000000">Notes for Developers</A>
+</UL></UL>
+<!--End of Table of Contents-->
+<P>
+This documentation describes how to prepare application programs in order 
+to have traces generated, when executed. This step is called <SPAN  CLASS="textit">instrumentation</SPAN>.
+Furthermore, it explains how to control the run-time measurement system 
+during execution (<SPAN  CLASS="textit">tracing</SPAN>). 
+This also includes hardware performance counter sampling,
+as well as selective filtering and grouping of functions.
+
+<P>
+
+<P>
+
+<H1><A NAME="SECTION00200000000000000000">
+Introduction</A>
+</H1>
+
+<P>
+VampirTrace consists of a tool-set and a run-time library for instrumentation 
+and tracing of software applications. It is particularly tailored towards  
+parallel and distributed High Performance Computing (HPC) applications.
+
+<P>
+The instrumentation part modifies a given application in order to inject
+additional measurement calls during run-time. The tracing part provides 
+the current measurement functionality used by the instrumentation calls.
+By this means, a variety of detailed performance properties can be collected 
+and recorded during run-time. 
+This includes
+
+<P>
+
+<UL>
+<LI>Function call enter and leave events
+</LI>
+<LI>MPI communication events
+</LI>
+<LI>OpenMP events
+</LI>
+<LI>Hardware performance counters
+</LI>
+<LI>various special purpose events
+</LI>
+</UL>
+
+<P>
+After a successful trace run, VampirTrace writes all collected data to a  
+trace in the Open Trace Format (OTF), see <TT><A NAME="tex2html4"
+  HREF="http://www.tu-dresden.de/zih/otf">http://www.tu-dresden.de/zih/otf</A></TT>.
+
+<P>
+As a result the information is available for post-mortem analysis and 
+visualization by various tools. 
+Most notably, VampirTrace provides the input data for the Vampir analysis  
+and visualization tool, see <TT><A NAME="tex2html5"
+  HREF="http://www.vampir.eu">http://www.vampir.eu</A></TT>. 
+
+<P>
+VampirTrace is included in OpenMPI&nbsp;1.3 and later.
+If not disabled explicitly, VampirTrace is built automatically when installing OpenMPI.
+Refer to <TT><A NAME="tex2html6"
+  HREF="http://www.open-mpi.org/faq/?category=vampirtrace">http://www.open-mpi.org/faq/?category=vampirtrace</A></TT> for more information.
+
+<P>
+Trace files can quickly become very large. With automatic instrumentation, 
+even tracing applications that run only for a few seconds can result in 
+trace files of several hundred megabytes. To protect users from 
+creating trace files of several gigabytes, the default behavior of 
+VampirTrace limits the internal buffer to 32 MB. This produces trace 
+files that are not larger than 32 MB per process, typically a lot smaller.
+Please read Section <A HREF="#trace_file_size">3.2</A> on how to remove or change the limit. 
+
+<P>
+VampirTrace supports various Unix and Linux platforms common in  
+HPC nowadays. It comes as open source software under a BSD License.  
+
+<P>
+
+<H1><A NAME="SECTION00300000000000000000">
+Instrumentation</A>
+</H1>
+
+<P>
+To make measurements with VampirTrace, the user's application program needs to
+be instrumented, i.e., at specific important points (called ``events'') VampirTrace
+measurement calls have to be activated.
+As an example, common events are entering and leaving 
+of function calls, as well as sending and receiving of MPI messages.
+
+<P>
+By default, VampirTrace handles this automatically. In order to enable
+instrumentation of function calls, the user only needs to replace the compiler 
+and linker commands with VampirTrace's wrappers, 
+see Section <A HREF="#compiler_wrappers">2.1</A> below. 
+VampirTrace supports different ways of instrumentation as described in 
+Section <A HREF="#instrumentation_types">2.2</A>.
+
+<P>
+
+<H1><A NAME="SECTION00310000000000000000">&#160;</A>
+<A NAME="compiler_wrappers">&#160;</A>
+<BR>
+The Compiler Wrappers
+</H1>
+
+<P>
+All the necessary instrumentation of user functions as well as MPI and
+OpenMP events is handled by VampirTrace's compiler wrappers (vtcc, vtcxx, vtf77, and
+vtf90).
+In the script used to build the application (e.g. a makefile), all compile
+and link commands should be replaced by the VampirTrace compiler wrapper.
+The wrappers perform the necessary instrumentation of the program and link
+the suitable VampirTrace library.
+Note that the VampirTrace version included in OpenMPI 1.3
+has additional wrappers (mpicc-vt, mpicxx-vt, mpif77-vt, and mpif90-vt) which
+are like the ordinary MPI compiler wrappers (mpicc and friends) with the extension
+of automatic instrumentation.
+
+<P>
+The following list shows some examples depending on the parallelization
+type of the program:
+
+<P>
+
+<UL>
+<LI><SPAN  CLASS="textbf">Serial programs</SPAN>:
+Compiling serial code is the default behavior of the wrappers.
+Simply replace the compiler by VampirTrace's wrapper:
+
+<P>
+<BR>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT">original:</TD>
+<TD ALIGN="LEFT"><TT>gfortran a.f90 b.f90 -o myprog  </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">with instrumentation:</TD>
+<TD ALIGN="LEFT"><TT>vtf90 a.f90 b.f90 -o myprog     </TT></TD>
+</TR>
+</TABLE>
+<BR>
+
+<P>
+This will instrument user functions (if supported by compiler) and
+link the VampirTrace library.
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textbf">MPI parallel programs</SPAN>:
+MPI instrumentation is always handled by means of the PMPI interface 
+which is part of the MPI standard.
+This requires the compiler wrapper to link with an MPI-aware version of
+the VampirTrace library.
+If your MPI implementation uses MPI compilers (e.g. mpicc, mpxlf90),
+you need to tell VampirTrace's wrapper to use this compiler
+instead of the serial one:
+
+<P>
+<BR>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT">original:</TD>
+<TD ALIGN="LEFT"><TT>mpicc hello.c -o hello  </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">with instrumentation:</TD>
+<TD ALIGN="LEFT"><TT>vtcc -vt:cc mpicc hello.c -o hello    </TT></TD>
+</TR>
+</TABLE>
+<BR>
+
+<P>
+MPI implementations without own compilers require the user to link
+the MPI library manually. In this case, you simply replace the compiler
+by VampirTrace's compiler wrapper:
+
+<P>
+<BR>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT">original:</TD>
+<TD ALIGN="LEFT"><TT>icc hello.c -o hello -lmpi </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">with instrumentation:</TD>
+<TD ALIGN="LEFT"><TT>vtcc hello.c -o hello -lmpi  </TT></TD>
+</TR>
+</TABLE>
+<BR>
+
+<P>
+If you want to instrument MPI events only (creates smaller trace files and less overhead)
+use the option <TT>-vt:inst manual</TT> to disable automatic instrumentation
+of user functions (see also Section <A HREF="#A1">2.4</A>).
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textbf">OpenMP parallel programs</SPAN>:
+When VampirTrace detects OpenMP flags on the command line,
+OPARI is invoked for automatic source code instrumentation of OpenMP events:
+
+<P>
+<BR>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT">original:</TD>
+<TD ALIGN="LEFT"><TT>ifort -openmp pi.f -o pi </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">with instrumentation:</TD>
+<TD ALIGN="LEFT"><TT>vtf77 -openmp pi.f -o pi </TT></TD>
+</TR>
+</TABLE>
+<BR>
+
+<P>
+For more information about OPARI refer to <TT>share/vampirtrace/doc/opari/Readme.html</TT> in
+VampirTrace's installation directory.
+
+<P>
+</LI>
+<LI><SPAN  CLASS="textbf">Hybrid MPI/OpenMP parallel programs</SPAN>:
+With a combination of the above mentioned approaches, hybrid applications can be instrumented:
+
+<P>
+<BR>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT">original:</TD>
+<TD ALIGN="LEFT"><TT>mpif90 -openmp hybrid.F90 -o hybrid </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">with instrumentation:</TD>
+<TD ALIGN="LEFT"><TT>vtf90 -vt:f90 mpif90 -openmp </TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT">&nbsp;</TD>
+<TD ALIGN="LEFT"><TT>hybrid.F90 -o hybrid </TT></TD>
+</TR>
+</TABLE>
+<BR>
+
+<P>
+</LI>
+</UL>
+
+<P>
+The VampirTrace compiler wrappers try to detect automatically which parallelization
+method is used by means of the compiler flags (e.g. <TT>-openmp</TT> or <TT>-lmpi</TT>)
+and the compiler command (e.g. <TT>mpif90</TT>).
+If the compiler wrapper failed to detect this correctly,
+the instrumentation could be incomplete and an unsuitable
+VampirTrace library would be linked to the binary.
+In this case, you should tell the compiler wrapper which parallelization method
+your program uses by the switches
+<TT>-vt:mpi</TT>, <TT>-vt:omp</TT>, and <TT>-vt:hyb</TT> for MPI, OpenMP, and
+hybrid programs, respectively.
+Note that these switches do not change the underlying compiler or compiler flags.
+Use the option <TT>-vt:verbose</TT> to see the command line the compiler wrapper executes.
+Refer to Appendix <A HREF="#comm_wrappers">A.1</A> for a list of all compiler wrapper options.
+
+<P>
+The default settings of the compiler wrappers can be modified in the files
+<TT>share/vampirtrace/vtcc-wrapper-data.txt</TT> (and similar for the other languages)
+in the installation directory of VampirTrace.
+The settings include compilers, compiler flags, libraries, and instrumentation types.
+For example, you could modify the default C compiler 
+from <TT>gcc</TT>
+to <TT>mpicc</TT> by changing the line <TT>compiler=gcc</TT> to <TT>compiler=mpicc</TT>.
+This may be convenient if you instrument MPI parallel programs only.
+
+<P>
+
+<H1><A NAME="SECTION00320000000000000000">&#160;</A>
+<A NAME="instrumentation_types">&#160;</A>
+<BR>
+Instrumentation Types
+</H1>
+
+<P>
+The wrapper's option <TT>-vt:inst &lt;insttype&gt;</TT> specifies the 
+instrumentation type to use. Following values for <TT>&lt;insttype&gt;</TT> are possible:
+
+<P>
+
+<UL>
+<LI>fully-automatic instrumentation by the compiler (see Section <A HREF="#compiler_instrumentation">2.3</A>):
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">insttype</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">Compilers</SPAN></TH>
+</TR>
+<TR><TD ALIGN="LEFT">gnu</TD>
+<TD ALIGN="LEFT">GNU (e.g., gcc, g++, gfortran, g95)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">intel</TD>
+<TD ALIGN="LEFT">Intel version &ge;10.0 (e.g., icc, icpc, ifort)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">pgi</TD>
+<TD ALIGN="LEFT">Portland Group (PGI) (e.g., pgcc, pgCC, pgf90, pgf77)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">phat</TD>
+<TD ALIGN="LEFT">SUN Fortran 90 (e.g., cc, CC, f90)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">xl</TD>
+<TD ALIGN="LEFT">IBM (e.g., xlcc, xlCC, xlf90)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">ftrace</TD>
+<TD ALIGN="LEFT">NEC SX (e.g., sxcc, sxc++, sxf90)</TD>
+</TR>
+</TABLE>
+
+<P>
+</LI>
+<LI>manual instrumentation (needs source-code modifications):
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">insttype</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">&nbsp;</SPAN></TH>
+</TR>
+<TR><TD ALIGN="LEFT">manual</TD>
+<TD ALIGN="LEFT">VampirTrace's API (see Section <A HREF="#A1">2.4</A>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT">pomp</TD>
+<TD ALIGN="LEFT">POMP INST directives (see Section <A HREF="#A2">2.5</A>)</TD>
+</TR>
+</TABLE>
+
+<P>
+</LI>
+<LI>special instrumentation types (uses external tools):
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">insttype</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">&nbsp;</SPAN></TH>
+</TR>
+<TR><TD ALIGN="LEFT">dyninst</TD>
+<TD ALIGN="LEFT">binary-instrumentation with Dyninst (Section <A HREF="#A3">2.6</A>)</TD>
+</TR>
+</TABLE>
+
+<P>
+</LI>
+</UL>
+
+<P>
+To determine which instrumentation type will be used by default and which other
+are available on your system take look at the entry <TT>inst_avail</TT> in the
+wrapper's configuration file (e.g. <TT>share/vampirtrace/vtcc-wrapper-data.txt</TT> in the
+installation directory of VampirTrace for the C compiler wrapper).
+
+<P>
+See Appendix <A HREF="#comm_wrappers">A.1</A> or type <TT>vtcc -vt:help</TT> for other
+options that can be passed through VampirTrace's compiler wrapper.
+
+<P>
+
+<H1><A NAME="SECTION00330000000000000000">&#160;</A>
+<A NAME="compiler_instrumentation">&#160;</A>
+<BR>
+Automatic Instrumentation
+</H1>
+
+<P>
+Automatic Instrumentation is the most convenient way to instrument your program.
+Simply use the compiler wrappers without any parameters, e.g.:
+
+<P>
+<BR>
+<BR>
+<code>   % vtf90 myprog1.f90 myprog2.f90 -o myprog</code>
+<BR>
+
+<P>
+
+<H2><A NAME="SECTION00331000000000000000">&#160;</A>
+<A NAME="bfdnotes">&#160;</A>
+<BR>
+Notes for Using the GNU, Intel, or Pathscale Compiler
+</H2>
+For these compilers the library <SPAN  CLASS="textit">BFD</SPAN> is required to get symbol information
+of the running application executable. This library is part of the <SPAN  CLASS="textit">GNU Binutils</SPAN>,
+which is downloadable from <TT><A NAME="tex2html7"
+  HREF="http://www.gnu.org/software/binutils">http://www.gnu.org/software/binutils</A></TT>.
+
+<P>
+To get the application executable for BFD during runtime, VampirTrace uses the <TT>/proc</TT> 
+file system. As <TT>/proc</TT> is not present on all operating systems, automatic symbol
+information might not be available. In this case, it is necessary to set the environment
+variable <TT>VT_APPPATH</TT> to the pathname of the application executable to get symbols
+resolved via BFD.
+
+<P>
+Should any problems emerge to get symbol information by using BFD, then the environment
+variable <TT>VT_GNU_NMFILE</TT> can be set to a symbol list file, which is created with the
+command <TT>nm</TT>, like:
+
+<P>
+<BR>
+<BR>
+<code>   % nm myprog &gt; myprog.nm</code>
+<BR>
+<BR>
+<BR>
+Note that the output format of <TT>nm</TT> must be written in BSD-style. See the manual-page
+of nm for getting help about the output format setting.
+
+<P>
+
+<H2><A NAME="SECTION00332000000000000000">
+Known License Issues with BFD</A>
+</H2>
+Please consider that BFD is deliviered under the GNU General Public License
+(GPL). So if you want to build binary packages including VampirTrace make sure
+to use the option <TT>-without-bfd</TT> to get a version without BFD. In this
+case you have to use <TT>nm</TT> to get symbol information from the running
+application executable (see Section&nbsp;<A HREF="#bfdnotes">2.3.1</A>).
+
+<P>
+
+<H2><A NAME="SECTION00333000000000000000">
+Notes on Instrumentation of Inline Functions</A>
+</H2>
+Compilers behave differently when they automatically instrument inlined functions.
+The GNU and Intel &ge;10.0 compilers instrument all functions by default when they
+are used with VampirTrace. They therefore switch off inlining completely, disregarding
+the optimization level chosen.
+One can prevent these particular functions from being instrumented by appending the
+following attribute to function declarations, hence
+making them able to be inlined (this works only for C/C++):
+
+<P>
+<BR>
+<BR>
+<code>      __attribute__ ((__no_instrument_function__))</code>
+<BR>
+<BR>
+
+<P>
+The PGI and IBM compilers prefer inlining over instrumentation when compiling
+with inlining enabled. Thus, one needs to disable inlining to enable instrumentation
+of inline functions and vice versa.
+
+<P>
+The bottom line is that you cannot inline and instrument a function at the same time.
+For more information on how to inline functions read your compiler's manual.
+
+<P>
+
+<H1><A NAME="SECTION00340000000000000000">&#160;</A>
+<A NAME="A1">&#160;</A>
+<BR>
+Manual Instrumentation using the VampirTrace API
+</H1>
+
+<P>
+The <TT>VT_USER_START</TT>, <TT>VT_USER_END</TT> instrumentation calls 
+can be used to mark any user-defined sequence of statements. 
+
+<P>
+<PRE>
+          Fortran: 
+                   #include "vt_user.inc"
+                   VT_USER_START('name')
+                   ...
+                   VT_USER_END('name')
+</PRE> 
+
+<P>
+<PRE>
+          C:
+                   #include "vt_user.h"
+                   VT_USER_START("name");
+                   ...
+                   VT_USER_END("name");
+</PRE>
+If a block has several exit points (as it is often the case for
+functions), all exit points have to be instrumented by 
+<TT>VT_USER_END</TT>, too.
+
+<P>
+For C++ it is simpler, as shown in the following example. Only entry points into a 
+scope need to be marked. Exit points are detected automatically, when C++ 
+deletes scope-local variables.
+
+<P>
+<PRE>
+          C++:
+                   #include "vt_user.h"
+                   {
+                     VT_TRACER("name");
+                     ...
+                   }
+</PRE> 
+
+<P>
+For all three languages, the instrumented sources have to be compiled 
+  with <TT>-DVTRACE</TT> otherwise the <TT>VT_*</TT> calls are ignored. 
+  Note that Fortran source files instrumented this way have to be 
+  preprocessed, too.
+
+<P>
+In addition, you can combine this instrumentation type with all other ones.
+  For example, all user functions can be instrumented by a compiler while
+  special source code regions (e.g. loops) can be instrumented by VT's API.
+
+<P>
+Use VT's compiler wrapper (described above) for compiling and linking the
+  instrumented source code, like:
+
+<UL>
+<LI>without other instrumentation (e.g., compiler):
+<BR>
+<BR><code>   % vtcc -vt:inst manual myprog1.c -DVTRACE -o myprog</code>
+<BR>
+<BR>
+</LI>
+<LI>combined with compiler-instrumentation:
+<BR>
+<BR><code>   % vtcc -vt:inst gnu myprog1.c -DVTRACE -o myprog</code>
+<BR>
+<BR>
+</LI>
+</UL>
+
+<P>
+Note that you can also use the option <TT>-vt:inst manual</TT>
+  with non-instrumented sources.
+  Binaries created this way only contain MPI and OpenMP instrumentation,
+  which might be desirable in some cases.
+
+<P>
+
+<H1><A NAME="SECTION00350000000000000000">&#160;</A>
+<A NAME="A2">&#160;</A>
+<BR>
+Manual Instrumentation using POMP
+</H1>
+
+<P>
+POMP (OpenMP Profiling Tool) instrumentation directives are supported for 
+  Fortran and C/C++. The main advantage is that by using directives, the 
+  instrumentation is ignored during normal compilation.
+
+<P>
+The <TT>INST BEGIN</TT> and <TT>INST END</TT> directives can be used to mark
+  any user-defined sequence of statements.
+  If this block has several exit points, all but the last exit
+  point have to be instrumented by <TT>INST ALTEND</TT>.
+
+<P>
+<PRE>
+          Fortran: 
+                   !POMP$ INST BEGIN(name)
+                   ...
+                     [ !POMP$ INST ALTEND(name) ]
+                   ...
+                   !POMP$ INST END(name)
+</PRE> 
+
+<P>
+<PRE>
+          C/C++:   
+                   #pragma pomp inst begin(name)
+                   ...
+                     [ #pragma pomp inst altend(name) ]
+                   ...
+                   #pragma pomp inst end(name)
+</PRE> 
+  At least the main program function has to be instrumented in this way, and
+  additionally, the following must be inserted as the first executable
+  statement of the main program:
+
+<P>
+<PRE>
+          Fortran: 
+                   !POMP$ INST INIT
+</PRE> 
+
+<P>
+<PRE>
+          C/C++:
+                   #pragma pomp inst init
+</PRE> 
+
+<P>
+
+<H1><A NAME="SECTION00360000000000000000">&#160;</A>
+<A NAME="A3">&#160;</A>
+<BR>
+Binary instrumentation using Dyninst
+</H1>
+
+<P>
+The option <TT>-vt:inst dyninst</TT> selects the compiler wrapper to 
+instrument the application during run-time (binary instrumentation) by using 
+Dyninst (<TT><A NAME="tex2html8"
+  HREF="http://www.dyninst.org">http://www.dyninst.org</A></TT>).
+Recompiling is not necessary for this way of instrumenting, 
+but relinking, as shown:
+
+<P>
+<BR>
+<BR>
+<code>   % vtf90 -vt:inst dyninst myprog1.o myprog2.o -o myprog</code>
+<BR>
+<BR>
+<BR>
+The compiler wrapper dynamically links the library <TT>libvt.dynatt.so</TT>
+  to the  application. This library attaches the <SPAN  CLASS="textit">Mutator</SPAN>-program
+  <TT>vtdyn</TT> during run-time which invokes the instrumenting by using 
+  the Dyninst-API.
+  Note that the application should have been compiled with the <TT>-g</TT>
+  switch in order to have symbol names visible.
+  After a trace-run by using this way of instrumenting, the <TT>vtunify</TT>
+  utility needs to be invoked manually (see Sections <A HREF="#unification">3.3</A> and <A HREF="#VTUNIFY">A.2</A>).
+
+<P>
+To prevent certain functions from being instrumented you can set
+  the environment variable <TT>VT_DYN_BLACKLIST</TT> to a file containing
+  a newline-separated list of function names. All additional overhead due to instrumentation
+  of these functions will be removed.
+
+<P>
+VampirTrace also allows binary instrumentation of functions located in shared libraries.
+  Ensure that the shared libraries have been compiled with <TT>-g</TT> and 
+  assign a colon-separated list of their names to
+  the environment variable <TT>VT_DYN_SHLIBS</TT>, e.g.:
+
+<P>
+<BR>
+<BR>
+  <code>   VT_DYN_SHLIBS=libsupport.so:libmath.so</code>
+  <BR>
+<BR>
+
+<P>
+
+<H1><A NAME="SECTION00400000000000000000">
+Runtime Measurement</A>
+</H1>
+
+<P>
+By default, running a VampirTrace instrumented application should result in an
+OTF trace file in the current working directory where the application was
+executed. Use the environment variables <TT>VT_FILE_PREFIX</TT> and <TT>VT_PFORM_GDIR</TT>
+described below to change the name of the trace file and its final location.
+In case a problem occurs, set the environment variable <TT>VT_VERBOSE</TT> to <TT>yes</TT> before
+executing the instrumented application in order to see control messages of the
+VampirTrace run-time system which might help tracking down the problem.
+
+<P>
+The internal buffer of VampirTrace is limited to 32 MB. Use the environment
+variable <TT>VT_BUFFER_SIZE</TT> and <TT>VT_MAX_FLUSHES</TT> to increase
+this limit. Section <A HREF="#trace_file_size">3.2</A> contains further information on
+influencing trace file size.
+
+<P>
+
+<H1><A NAME="SECTION00410000000000000000">
+Environment Variables</A>
+</H1>
+
+<P>
+The following environment variables can be used to control the measurement
+of a VampirTrace instrumented executable:
+
+<P>
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">Variable</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">Purpose</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">Default</SPAN></TH>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_PFORM_GDIR</TT></TD>
+<TD ALIGN="LEFT">Name of global directory to store final trace file in</TD>
+<TD ALIGN="LEFT"><TT>./</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_PFORM_LDIR</TT></TD>
+<TD ALIGN="LEFT">Name of node-local directory that can be used to store temporary trace files</TD>
+<TD ALIGN="LEFT"><TT>/tmp/</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_FILE_PREFIX</TT></TD>
+<TD ALIGN="LEFT">Prefix used for trace filenames</TD>
+<TD ALIGN="LEFT"><TT>a</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_APPPATH</TT></TD>
+<TD ALIGN="LEFT">Path to the application executable</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_BUFFER_SIZE</TT></TD>
+<TD ALIGN="LEFT">Size of internal event trace buffer. This is the place where
+	event records are stored, before being written to a file.</TD>
+<TD ALIGN="LEFT">32M</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_MAX_FLUSHES</TT></TD>
+<TD ALIGN="LEFT">Maximum number of buffer flushes</TD>
+<TD ALIGN="LEFT">1</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_VERBOSE</TT></TD>
+<TD ALIGN="LEFT">Print VampirTrace related control information during measurement?</TD>
+<TD ALIGN="LEFT">no</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_METRICS</TT></TD>
+<TD ALIGN="LEFT">Specify counter metrics to be recorded with trace events as a
+	colon-separated list of names. (for details see Appendix <A HREF="#papi">B</A>)</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_MEMTRACE</TT></TD>
+<TD ALIGN="LEFT">Enable memory allocation counters? (see Sec. <A HREF="#mem_alloc_counters">4.2</A>)</TD>
+<TD ALIGN="LEFT">no</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_IOTRACE</TT></TD>
+<TD ALIGN="LEFT">Enable tracing of application I/O calls? (see Sec. <A HREF="#app_io_calls">4.3</A>)</TD>
+<TD ALIGN="LEFT">no</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_MPITRACE</TT></TD>
+<TD ALIGN="LEFT">Enable tracing of MPI events?</TD>
+<TD ALIGN="LEFT">yes</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_DYN_BLACKLIST</TT></TD>
+<TD ALIGN="LEFT">Name of blacklist file for Dyninst instrumentation (see Section <A HREF="#A3">2.6</A>)</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_DYN_SHLIBS</TT></TD>
+<TD ALIGN="LEFT">Colon-separated list of shared libraries for Dyninst instrumentation (see Section <A HREF="#A3">2.6</A>)</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_FILTER_SPEC</TT></TD>
+<TD ALIGN="LEFT">Name of function/region filter file (see Section <A HREF="#function_filter">5.1</A>)</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_GROUPS_SPEC</TT></TD>
+<TD ALIGN="LEFT">Name of function grouping file
+	(See Section <A HREF="#function_groups">5.2</A>)</TD>
+<TD ALIGN="LEFT">-</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_UNIFY</TT></TD>
+<TD ALIGN="LEFT">Unify local trace files afterwards?</TD>
+<TD ALIGN="LEFT">yes</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COMPRESSION</TT></TD>
+<TD ALIGN="LEFT">Write compressed trace files?</TD>
+<TD ALIGN="LEFT">yes</TD>
+</TR>
+</TABLE>
+
+<P>
+The value for the first three variables can contain (sub)strings of the
+form <TT>$XYZ</TT> or <TT>${XYZ}</TT> where <TT>XYZ</TT> is the name of 
+another environment variable.
+Evaluation of the environment variable is done at measurement run-time.
+
+<P>
+When you use these environment variables, make sure that they have the same
+value for all processes of your application on <SPAN  CLASS="textbf">all</SPAN> nodes of your cluster.
+Some cluster environments do not automatically transfer your environment
+when executing parts of your job on remote nodes of the cluster, and you
+may need to explicitly set and export them in batch job submission scripts.
+
+<P>
+
+<H1><A NAME="SECTION00420000000000000000">&#160;</A>
+<A NAME="trace_file_size">&#160;</A>
+<BR>
+Influencing Trace File Size
+</H1>
+
+<P>
+The default values of the environment variables <TT>VT_BUFFER_SIZE</TT> and <BR><TT>VT_MAX_FLUSHES</TT> limit the internal buffer of VampirTrace to
+32 MB and the number of times that the buffer is flushed to 1. Events that
+should be recorded after the limit has been reached are no longer written into
+the trace file. The environment variables apply to every process of a
+parallel application, meaning that applications with <SPAN  CLASS="textit">n</SPAN> processes
+will typically create trace files <SPAN  CLASS="textit">n</SPAN> times the size of a serial
+application.
+
+<P>
+To remove the limit and get a complete trace of an application, set <BR><TT>VT_MAX_FLUSHES</TT> to <TT>0</TT>. This causes VampirTrace to always
+write the buffer to disk when the buffer is full. To change the size of the
+buffer, use the variable <TT>VT_BUFFER_SIZE</TT>. The optimal value for
+this variable depends on the application that should be traced. Setting a
+small value will increase the memory that is available to the application but
+will trigger frequent buffer flushes by VampirTrace. These buffer flushes can
+significantly change the behavior of the application. On the other hand,
+setting a large value, like <TT>2G</TT>, will minimize buffer flushes by
+VampirTrace, but decrease the memory available to the application. If not
+enough memory is available to hold the VampirTrace buffer and the application
+data this may cause parts of the application to be swapped to disk leading
+also to a significant change in the behavior of the application.
+
+<P>
+
+<H1><A NAME="SECTION00430000000000000000">&#160;</A>
+<A NAME="unification">&#160;</A>
+<BR>
+Unification of local Traces
+</H1>
+
+<P>
+After a run of an instrumented application the traces of the single
+processes need to be <SPAN  CLASS="textit">unified</SPAN> in terms of timestamps and event IDs.
+In most cases, this happens automatically.
+But under certain circumstances it is necessary to perform unification of local
+traces manually. To do this, use the command:
+
+<P>
+<BR>
+<BR>
+<code>   % vtunify &lt;no-of-traces&gt; &lt;prefix&gt;</code>
+<BR>
+<BR>
+<BR>
+For example, this is required on the BlueGene/L platform or when using Dyninst
+instrumentation.
+
+<P>
+
+<H1><A NAME="SECTION00500000000000000000">
+Recording additional Events and Counters</A>
+</H1>
+
+<P>
+
+<H1><A NAME="SECTION00510000000000000000">
+PAPI Hardware Performance Counters</A>
+</H1>
+
+<P>
+If VampirTrace has been built with hardware-counter support enabled (see
+  Section <A HREF="#install">C</A>), VampirTrace is capable of recording hardware counter
+  information as part of the event records. To request the measurement of
+  certain counters, the user must set the environment variable <TT>VT_METRICS</TT>.
+  The variable should contain a colon-separated list of counter names,
+  or a predefined platform-specific group.
+  Metric names can be any PAPI preset names or PAPI native counter names. 
+  For example, set
+
+<P>
+<BR>
+<BR>
+  <code>   VT_METRICS=PAPI_FP_OPS:PAPI_L2_TCM</code>
+  <BR>
+<BR>
+<BR>
+to record the number of floating point instructions and level 2 cache misses.
+  See Appendix <A HREF="#papi">B</A> for a full list of PAPI preset counters.
+
+<P>
+The user can leave the environment variable unset to indicate that no
+  counters are requested. If any of the requested counters are not recognized
+  or the full list of counters cannot be recorded due to hardware-resource
+  limits, program execution will be aborted with an error message.
+
+<P>
+
+<H1><A NAME="SECTION00520000000000000000">&#160;</A>
+<A NAME="mem_alloc_counters">&#160;</A>
+<BR>
+Memory Allocation Counters
+</H1>
+
+<P>
+The GNU glibc implementation provides a special hook mechanism that allows
+  intercepting all calls to allocation and free functions
+  (e.g. <TT>malloc</TT>, <TT>realloc</TT>, <TT>free</TT>).
+  This is independent from compilation or source code access, but relies on the
+  underlying system library.
+
+<P>
+If VampirTrace has been built with memory-tracing support enabled (see
+  Section <A HREF="#install">C</A>), VampirTrace is capable of recording memory allocation
+  information as part of the event records. To request the measurement of
+  the application's allocated memory, the user must set the environment variable
+  <TT>VT_MEMTRACE</TT> to <TT>yes</TT>.
+
+<P>
+
+<H4><A NAME="SECTION00520010000000000000">
+Note:</A>
+</H4>
+  This approach to get memory allocation information requires changing internal
+  function pointers in a non-thread-safe way, so VampirTrace doesn't support
+  memory tracing for OpenMP-parallelized programs!
+
+<P>
+
+<H1><A NAME="SECTION00530000000000000000">&#160;</A>
+<A NAME="app_io_calls">&#160;</A>
+<BR>
+Application I/O Calls
+</H1>
+
+<P>
+Calls to functions which reside in external libraries can be intercepted by
+  implementing identical functions and linking them before the external library.
+  Such ``wrapper functions'' can record the parameters and return values of the
+  library functions.
+
+<P>
+If VampirTrace has been built with I/O tracing support, it uses this technique
+  for recording calls to I/O functions of the standard C library which are
+  executed by the application. Following functions
+  are intercepted by VampirTrace:
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>open</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>read</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fdopen</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fread</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>open64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>write</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fopen</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fwrite</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>creat</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>readv</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fopen64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fgetc</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>creat64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>writev</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fclose</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>getc</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>close</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>pread</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fseek</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fputc</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>dup</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>pwrite</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fseeko</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>putc</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>dup2</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>pread64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fseeko64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fgets</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>lseek</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>pwrite64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>rewind</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fputs</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>lseek64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110>&nbsp;</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fsetpos</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fscanf</TT></TD>
+</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110>&nbsp;</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110>&nbsp;</TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fsetpos64</TT></TD>
+<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=110><TT>fprintf</TT></TD>
+</TR>
+</TABLE>
+
+<P>
+The gathered information will be saved
+  as I/O event records in the trace file. This feature has to be activated for
+  each tracing run by setting the environment variable <TT>VT_IOTRACE</TT> to
+  <TT>yes</TT>.
+
+<P>
+
+<H1><A NAME="SECTION00540000000000000000">
+User Defined Counters</A>
+</H1>
+
+<P>
+In addition to the manual instrumentation (see Section <A HREF="#A1">2.4</A>) the VampirTrace API
+  provides instrumentation calls which allow recording of 
+  program variable values (e.g. iteration counts, calculation results, ...) or any other 
+  numerical quantity.
+  A user defined counter is identified by its name, the counter group it belongs to,
+  the type of its value (integer or floating-point), and the unit that the value is 
+  quoted (e.g. ``GFlop/sec'').
+
+<P>
+The <TT>VT_COUNT_GROUP_DEF</TT> and <TT>VT_COUNT_DEF</TT> instrumentation
+  calls can be used to define counter groups and counters:
+
+<P>
+<PRE>
+Fortran:
+           #include "vt_user.inc"
+           integer :: id, gid
+           VT_COUNT_GROUP_DEF('name', gid)
+           VT_COUNT_DEF('name', 'unit', type, gid, id)
+</PRE> 
+
+<P>
+<PRE>
+C/C++:
+           #include "vt_user.h"
+           unsigned int id, gid;
+           gid = VT_COUNT_GROUP_DEF('name');
+           id = VT_COUNT_DEF("name", "unit", type, gid);
+</PRE>
+
+<P>
+The definition of a counter group is optionally. If no special counter group is desired
+  the default group ``User'' can be used.
+  In this case, set the parameter <TT>gid</TT> of <TT>VT_COUNT_DEF</TT> to
+  <TT>VT_COUNT_DEFGROUP</TT>.
+
+<P>
+The third parameter <TT>type</TT> of <TT>VT_COUNT_DEF</TT> specifies the data
+  type of the counter value. To record a value for any of the defined counters the 
+  corresponding instrumentation call <TT>VT_COUNT_*_VAL</TT> must be invoked.
+
+<P>
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">Fortran:</SPAN></TH>
+<TD ALIGN="LEFT">&nbsp;</TD>
+<TD ALIGN="LEFT">&nbsp;</TD>
+</TR>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">Type</SPAN></TH>
+<TD ALIGN="LEFT"><SPAN  CLASS="textbf">Count call</SPAN></TD>
+<TD ALIGN="LEFT"><SPAN  CLASS="textbf">Data type</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_INTEGER</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_INTEGER_VAL</TT></TD>
+<TD ALIGN="LEFT">integer (4 byte)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_INTEGER8</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_INTEGER8_VAL</TT></TD>
+<TD ALIGN="LEFT">integer (8 byte)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_REAL</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_REAL_VAL</TT></TD>
+<TD ALIGN="LEFT">real</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_DOUBLE</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_DOUBLE_VAL</TT></TD>
+<TD ALIGN="LEFT">double precision</TD>
+</TR>
+</TABLE>
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">C/C++:</SPAN></TH>
+<TD ALIGN="LEFT">&nbsp;</TD>
+<TD ALIGN="LEFT">&nbsp;</TD>
+</TR>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">Type</SPAN></TH>
+<TD ALIGN="LEFT"><SPAN  CLASS="textbf">Count call</SPAN></TD>
+<TD ALIGN="LEFT"><SPAN  CLASS="textbf">Data type</SPAN></TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_SIGNED</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_SIGNED_VAL</TT></TD>
+<TD ALIGN="LEFT">signed int (max. 64-bit)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_UNSIGNED</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_UNSIGNED_VAL</TT></TD>
+<TD ALIGN="LEFT">unsigned int (max. 64-bit)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_FLOAT</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_FLOAT_VAL</TT></TD>
+<TD ALIGN="LEFT">float</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>VT_COUNT_TYPE_DOUBLE</TT></TD>
+<TD ALIGN="LEFT"><TT>VT_COUNT_DOUBLE_VAL</TT></TD>
+<TD ALIGN="LEFT">double</TD>
+</TR>
+</TABLE>
+
+<P>
+The following example records the loop index <TT>i</TT>:
+
+<P>
+<PRE>
+Fortran:
+
+  #include "vt_user.inc"
+
+  program main
+  integer :: i, cid, cgid
+
+  VT_COUNT_GROUP_DEF('loopindex', cgid)
+  VT_COUNT_DEF('i', '#', VT_COUNT_TYPE_INTEGER, cgid, cid)
+
+  do i=1,100
+    VT_COUNT_INTEGER_VAL(cid, i)
+  end do
+
+  end program main
+</PRE> 
+
+<P>
+<PRE>
+C/C++:
+
+  #include "vt_user.h"
+
+  int main() {
+    unsigned int i, cid, cgid;
+
+    cgid = VT_COUNT_GROUP_DEF('loopindex');
+    cid = VT_COUNT_DEF("i", "#", VT_COUNT_TYPE_UNSIGNED,
+                       cgid);
+
+    for( i = 1; i &lt;= 100; i++ ) {
+      VT_COUNT_UNSIGNED_VAL(cid, i);
+    }
+
+    return 0;
+  }
+</PRE>
+
+<P>
+For all three languages the instrumented sources have to be compiled 
+  with <TT>-DVTRACE</TT>. Otherwise the <TT>VT_*</TT> calls are ignored.
+  If additionally any functions or regions are manually instrumented by VT's API
+  (see Section <A HREF="#A1">2.4</A>) and only the instrumentation calls for user defined
+  counter should be disabled, then the sources have to be compiled with
+  <TT>-DVTRACE_NO_COUNT</TT>, too.
+
+<P>
+
+<H1><A NAME="SECTION00600000000000000000">
+Filtering &amp; Grouping</A>
+</H1>
+
+<P>
+
+<H1><A NAME="SECTION00610000000000000000">&#160;</A>
+<A NAME="function_filter">&#160;</A>
+<BR>
+Function Filtering
+</H1>
+
+<P>
+By default, all calls of instrumented functions will be traced, so that the
+  resulting trace files can easily become very large. In order to decrease the
+  size of a trace, VampirTrace allows the specification of filter directives
+  before running an instrumented application.
+  The user can decide on how often an instrumented function/region is to be
+  recorded to a trace file.
+  To use a filter, the environment variable <TT>VT_FILTER_SPEC</TT> needs to be 
+  defined. It should contain the path and name of a file with filter directives.
+
+<P>
+Below, there is an example of a file containing filter directives:
+
+<P>
+<PRE>
+  #    VampirTrace region filter specification
+  #   
+  #    call limit definitions and region assignments
+  #   
+  #    syntax: &lt;regions&gt; -- &lt;limit&gt;
+  #   
+  #      regions    semicolon-separated list of regions
+  #                 (can be wildcards)
+  #      limit      assigned call limit
+  #                  0 = region(s) denied
+  #                 -1 = unlimited
+  #   
+  add;sub;mul;div -- 1000
+  * -- 3000000
+</PRE> 
+
+<P>
+These region filter directives cause that the functions <TT>add</TT>, 
+<TT>sub</TT>, <TT>mul</TT> and <TT>div</TT> to be recorded at most 1000 times. 
+The remaining functions <TT>*</TT> will be recorded at most 3000000 times.
+
+<P>
+Besides creating filter files by hand, you can also use the <TT>vtfilter</TT>
+tool to generate them automatically. This tool reads the provided trace
+and decides whether a function should be filtered or not, based on the evaluation of
+certain parameters. For more information see Section <A HREF="#VTFILTER">A.4</A>.
+
+<P>
+
+<H1><A NAME="SECTION00620000000000000000">&#160;</A>
+<A NAME="function_groups">&#160;</A>
+<BR>
+Function Grouping
+</H1>
+
+<P>
+VampirTrace allows assigning functions/regions to a group. 
+  Groups can, for instance, be highlighted by different colors in Vampir displays.
+  The following standard groups are created by VampirTrace:
+
+<P>
+<TABLE CELLPADDING=3>
+<TR><TH ALIGN="LEFT"><SPAN  CLASS="textbf">Group name</SPAN></TH>
+<TH ALIGN="LEFT"><SPAN  CLASS="textbf">Contained functions/regions</SPAN></TH>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>MPI</TT></TD>
+<TD ALIGN="LEFT">MPI functions</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>OMP</TT></TD>
+<TD ALIGN="LEFT">OpenMP constructs and functions</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>MEM</TT></TD>
+<TD ALIGN="LEFT">Memory allocation functions (see <A HREF="#mem_alloc_counters">4.2</A>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>I/O</TT></TD>
+<TD ALIGN="LEFT">I/O functions (see <A HREF="#app_io_calls">4.3</A>)</TD>
+</TR>
+<TR><TD ALIGN="LEFT"><TT>Application</TT></TD>
+<TD ALIGN="LEFT">remaining instrumented functions and source code regions</TD>
+</TR>
+</TABLE>
+
+<P>
+Additionally, you can create your own groups, e.g. to better distinguish
+  different phases of an application.
+  To use function/region grouping set the environment variable
+  <TT>VT_GROUPS_SPEC</TT> to the path of a file which contains the group
+  assignments. 
+  Below, there is an example of how to use group assignments:
+
+<P>
+<PRE>
+  #    VampirTrace region groups specification
+  #
+  #    group definitions and region assignments
+  #
+  #    syntax: &lt;group&gt;=&lt;regions&gt;
+  #
+  #      group      group name 
+  #      regions    semicolon-separated list of regions
+  #                 (can be wildcards)
+  #
+  CALC=add;sub;mul;div
+  USER=app_*
+</PRE> 
+
+<P>
+These group assignments make the functions <TT>add</TT>, <TT>sub</TT>, 
+<TT>mul</TT> and <TT>div</TT> associated with group ``CALC'' and all functions 
+with the prefix <TT>app_</TT> are associated with group ``USER''.
+
+<P>
+
+<P>
+
+<H1><A NAME="SECTION00700000000000000000">
+Command Reference</A>
+</H1>
+
+<H1><A NAME="SECTION00710000000000000000">&#160;</A>
+<A NAME="comm_wrappers">&#160;</A>
+<BR>
+Compiler Wrappers (vtcc,vtcxx,vtf77,vtf90)
+</H1>
+
+<P>
+<PRE>
+vtcc,vtcxx,vtf77,vtf90 - compiler wrappers for C, C++, 
+                         Fortran 77, Fortran 90
+
+Syntax: vt&lt;cc|cxx|f77|f90&gt; [-vt:&lt;cc|cxx|f77|f90&gt; &lt;cmd&gt;] 
+        [-vt:inst &lt;insttype&gt;] [-vt:&lt;seq|mpi|omp|hyb&gt;] 
+        [-vt:opari &lt;args&gt;] [-vt:verbose] [-vt:version]
+        [-vt:showme] [-vt:showme_compile] 
+        [-vt:showme_link] ...
+
+options:
+  -vt:help            Show this help message.
+  -vt:&lt;cc|cxx|f77|f90&gt; &lt;cmd&gt;
+                      Set the underlying compiler command.
+
+  -vt:inst &lt;insttype&gt; Set the instrumentation type.
+
+   possible values:
+
+    gnu               fully-automatic by GNU compiler
+    intel             ... Intel (version &gt;= 10.x) ...
+    pgi               ... Portland Group (PGI) ...
+    phat              ... SUN Fortran 90 ...
+    xl                ... IBM ...
+    ftrace            ... NEC SX ...
+    manual            manual by using VampirTrace's API
+    pomp              manual by using using POMP INST directives
+    dyninst           binary by using Dyninst (www.dyninst.org)
+
+  -vt:opari &lt;args&gt;    Set options for OPARI command. (see
+                      share/vampirtrace/doc/opari/Readme.html)
+
+  -vt:&lt;seq|mpi|omp|hyb&gt;
+                      Force application's parallelization type.
+                      Necessary, if this cannot be determined
+                      by underlying compiler and flags.
+                      seq = sequential
+                      mpi = parallel (uses MPI)
+                      omp = parallel (uses OpenMP)
+                      hyb = hybrid parallel (MPI + OpenMP)
+                      (default: automatically determining by
+                       underlying compiler and flags)
+
+  -vt:verbose         Enable verbose mode.
+
+  -vt:showme          Do not invoke the underlying compiler.
+                      Instead, show the command line that 
+                      would be executed.
+
+  -vt:showme_compile  Do not invoke the underlying compiler.
+                      Instead, show the compiler flags that 
+                      would be supplied to the compiler.
+
+  -vt:showme_link     Do not invoke the underlying compiler.
+                      Instead, show the linker flags that 
+                      would be supplied to the compiler.
+
+  See the man page for your underlying compiler for other 
+  options that can be passed through 'vt&lt;cc|cxx|f77|f90&gt;'.
+
+Environment variables:
+  VT_CC               Equivalent to '-vt:cc'
+  VT_CXX              Equivalent to '-vt:cxx'
+  VT_F77              Equivalent to '-vt:f77'
+  VT_F90              Equivalent to '-vt:f90'
+  VT_INST             Equivalent to '-vt:inst'
+
+  The corresponding command line options overwrite the 
+  environment variable settings.
+
+Examples:
+  automatically instrumentation by using GNU compiler:
+
+     vtcc -vt:cc gcc -vt:inst gnu -c foo.c -o foo.o
+     vtcc -vt:cc gcc -vt:inst gnu -c bar.c -o bar.o
+     vtcc -vt:cc gcc -vt:inst gnu foo.o bar.o -o foo
+
+  manually instrumentation by using VT's API:
+
+     vtf90 -vt:inst manual foobar.F90 -o foobar -DVTRACE
+
+  IMPORTANT: Fortran source files instrumented by VT's API or
+             POMP directives have to be preprocessed by CPP.
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00720000000000000000">&#160;</A>
+<A NAME="VTUNIFY">&#160;</A>
+<BR>
+Local Trace Unifier (vtunify)
+</H1>
+
+<P>
+<PRE>
+vtunify - local trace unifier for VampirTrace.
+
+Syntax: vtunify &lt;#files&gt; &lt;iprefix&gt; [-o &lt;oprefix&gt;]
+        [-c|--compress &lt;on|off&gt;] [-k|--keeplocal]
+        [-v|--verbose]
+
+Options:
+  -h, --help          Show this help message.
+
+  #files              number of local trace files
+                      (equal to # of '*.uctl' files)
+
+  iprefix             prefix of input trace filename.
+
+  -o &lt;oprefix&gt;        prefix of output trace filename.
+
+  -s &lt;statsofile&gt;     statistics output filename
+                      default=&lt;oprefix&gt;.stats
+
+  -q, --noshowstats   Don't show statistics on stdout.
+
+  -c, --nocompress    Don't compress output trace files.
+
+  -k, --keeplocal     Don't remove input trace files.
+
+  -v, --verbose       Enable verbose mode.
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00730000000000000000">&#160;</A>
+<A NAME="VTDYN">&#160;</A>
+<BR>
+Dyninst Mutator (vtdyn)
+</H1>
+
+<P>
+<PRE>
+vtdyn - Dyninst Mutator for VampirTrace.
+
+Syntax: vtdyn [-v|--verbose] [-s|--shlib &lt;shlib&gt;[,...]]
+              [-b|--blacklist &lt;bfile&gt; [-p|--pid &lt;pid&gt;]
+              &lt;app&gt; [appargs ...]
+
+Options:
+  -h, --help          Show this help message.
+
+  -v, --verbose       Enable verbose mode.
+
+  -s, --shlib         Comma-separated list of shared libraries
+  &lt;shlib&gt;[,...]       which should also be instrumented.
+
+  -b, --blacklist     Set path of blacklist file containing
+  &lt;bfile&gt;             a newline-separated list of functions
+                      which should not be instrumented.
+
+  -p, --pid &lt;pid&gt;     application's process id
+                      (attaches the mutator to a running process)
+
+  app                 path of application executable
+
+  appargs             application's arguments
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00740000000000000000">&#160;</A>
+<A NAME="VTFILTER">&#160;</A>
+<BR>
+Trace Filter Tool (vtfilter)
+</H1>
+
+<P>
+<PRE>
+vtfilter - filter generator for VampirTrace
+
+Syntax:
+    Filter a trace file using an already existing filter file:
+       vtfilter -filt [filt-options] &lt;input trace file&gt;
+    Generate a filter:
+       vtfilter -gen [gen-options] &lt;input trace file&gt;
+
+general options:
+    -h, --help            show this help message
+    -p                    show progress
+
+filt-options:
+    -to &lt;file&gt;            output trace file name
+    
+    -fi &lt;file&gt;            input filter file name
+    
+    -z &lt;zlevel&gt;           Set the compression level. Level
+                          reaches from 0 to 9 where 0 is no
+                          compression and 9 is the highest
+                          level. Standard is 4.
+                          
+    -f &lt;n&gt;                Set max number of file handles
+                          available. Standard is 256.
+
+gen-options:
+    -fo &lt;file&gt;            output filter file name
+    
+    -r &lt;n&gt;                Reduce the trace size to &lt;n&gt; percent
+                          of the original size. The program
+                          relies on the fact that the major
+                          part of the trace are function calls.
+                          The approximation of size will get
+                          worse with a rising percentage of
+                          communication and other non function
+                          calling or performance counter
+                          records.
+                          
+    -l &lt;n&gt;                Limit the number of accepted
+                          function calls for filtered functions
+                          to &lt;n&gt;. Standard is 0.
+                          
+    -ex &lt;f&gt;,&lt;f&gt;,...       Exclude certain symbols from
+                          filtering. A symbol may contain
+                          wildcards.
+                          
+    -in &lt;f&gt;,&lt;f&gt;,...       Force to include certain symbols
+                          into the filter. A symbol may contain
+                          wildcards.
+                          
+    -inc                  Automatically include children of
+                          included functions as well into the
+                          filter.
+                          
+    -stats                Prints out the desired and the
+                          expected percentage of file size.
+
+
+  environment variables:
+    TRACEFILTER_EXCLUDEFILE  Specifies a file containing a list
+                             of symbols not to be filtered. The
+                             list of members can be seperated
+                             by space, comma, tab, newline and
+                             may contain wildcards.
+                             
+    TRACEFILTER_INCLUDEFILE  Specifies a file containing a list
+                             of symbols  to be filtered.
+</PRE>
+
+<P>
+
+<H1><A NAME="SECTION00800000000000000000">&#160;</A>
+<A NAME="papi">&#160;</A>
+<BR>
+PAPI Counter Specifications
+</H1>
+
+<P>
+Available counter names can be queried with the PAPI commands 
+<TT>papi_avail</TT> and <TT>papi_native_avail</TT>.
+There are limitations to the combinations of counters. To check
+whether your choice works properly, use the command
+<BR><TT>papi_event_chooser</TT>.
+
+<P>
+<PRE>
+PAPI_L[1|2|3]_[D|I|T]C[M|H|A|R|W]    
+              Level 1/2/3 data/instruction/total cache 
+              misses/hits/accesses/reads/writes
+
+PAPI_L[1|2|3]_[LD|ST]M    
+              Level 1/2/3 load/store misses                       
+
+PAPI_CA_SNP   Requests for a snoop                                
+PAPI_CA_SHR   Requests for exclusive access to shared cache line  
+PAPI_CA_CLN   Requests for exclusive access to clean cache line   
+PAPI_CA_INV   Requests for cache line invalidation                
+PAPI_CA_ITV   Requests for cache line intervention                
+
+PAPI_BRU_IDL  Cycles branch units are idle                        
+PAPI_FXU_IDL  Cycles integer units are idle                       
+PAPI_FPU_IDL  Cycles floating point units are idle                
+PAPI_LSU_IDL  Cycles load/store units are idle                    
+
+PAPI_TLB_DM   Data translation lookaside buffer misses            
+PAPI_TLB_IM   Instruction translation lookaside buffer misses     
+PAPI_TLB_TL   Total translation lookaside buffer misses           
+
+PAPI_BTAC_M   Branch target address cache misses                  
+PAPI_PRF_DM   Data prefetch cache misses                          
+PAPI_TLB_SD   Translation lookaside buffer shootdowns             
+
+PAPI_CSR_FAL  Failed store conditional instructions               
+PAPI_CSR_SUC  Successful store conditional instructions           
+PAPI_CSR_TOT  Total store conditional instructions                
+
+PAPI_MEM_SCY  Cycles Stalled Waiting for memory accesses          
+PAPI_MEM_RCY  Cycles Stalled Waiting for memory Reads             
+PAPI_MEM_WCY  Cycles Stalled Waiting for memory writes            
+
+PAPI_STL_ICY  Cycles with no instruction issue                    
+PAPI_FUL_ICY  Cycles with maximum instruction issue               
+PAPI_STL_CCY  Cycles with no instructions completed               
+PAPI_FUL_CCY  Cycles with maximum instructions completed          
+
+PAPI_BR_UCN   Unconditional branch instructions                   
+PAPI_BR_CN    Conditional branch instructions                     
+PAPI_BR_TKN   Conditional branch instructions taken               
+PAPI_BR_NTK   Conditional branch instructions not taken           
+PAPI_BR_MSP   Conditional branch instructions mispredicted        
+PAPI_BR_PRC   Conditional branch instructions correctly predicted 
+
+PAPI_FMA_INS  FMA instructions completed                          
+PAPI_TOT_IIS  Instructions issued                                 
+PAPI_TOT_INS  Instructions completed                              
+PAPI_INT_INS  Integer instructions                                
+PAPI_FP_INS   Floating point instructions                         
+PAPI_LD_INS   Load instructions                                   
+PAPI_SR_INS   Store instructions                                  
+PAPI_BR_INS   Branch instructions                                 
+PAPI_VEC_INS  Vector/SIMD instructions                            
+PAPI_LST_INS  Load/store instructions completed                   
+PAPI_SYC_INS  Synchronization instructions completed              
+PAPI_FML_INS  Floating point multiply instructions                
+PAPI_FAD_INS  Floating point add instructions                     
+PAPI_FDV_INS  Floating point divide instructions                  
+PAPI_FSQ_INS  Floating point square root instructions             
+PAPI_FNV_INS  Floating point inverse instructions                 
+
+PAPI_RES_STL  Cycles stalled on any resource    
+PAPI_FP_STAL  Cycles the FP unit(s) are stalled 
+
+PAPI_FP_OPS   Floating point operations         
+PAPI_TOT_CYC  Total cycles                      
+PAPI_HW_INT   Hardware interrupts
+</PRE> 
+
+<P>
+
+<H1><A NAME="SECTION00900000000000000000">&#160;</A>
+<A NAME="install">&#160;</A>
+<BR>
+VampirTrace Installation
+</H1>
+
+<P>
+
+<H1><A NAME="SECTION00910000000000000000">
+Basics</A>
+</H1>
+
+<P>
+Building VampirTrace is typically a combination of running <TT>configure</TT>
+    and
+<BR><TT>make</TT>.  Execute the following commands to install VampirTrace from
+    within the directory at the top of the tree:
+
+<P>
+<PRE>
+% ./configure --prefix=/where/to/install
+[...lots of output...]
+% make all install
+</PRE> 
+
+<P>
+If you need special access for installing, then you can execute
+    <TT>make all</TT> as a user with write permissions in the build tree, and a
+    separate <TT>make install</TT> as a user with write permissions to the
+    install tree.
+
+<P>
+However, for more details, also read the following instructions. Sometimes
+    it might be necessary to provide <TT>./configure</TT> with options, e.g.
+    specifications of paths or compilers. Please consult the CONFIG-EXAMPLES file to
+    get an idea of how to configure VampirTrace for your platform.
+
+<P>
+VampirTrace comes with example programs written in C, C++, and Fortran.
+    They can be used to test different instrumentation types of the
+    VampirTrace installation.
+    You can find them in the directory <TT>examples</TT> of the VampirTrace package.
+
+<P>
+
+<H1><A NAME="SECTION00920000000000000000">
+Configure Options</A>
+</H1>
+
+<P>
+
+<H2><A NAME="SECTION00921000000000000000">
+Compilers and Options</A>
+</H2>
+
+<P>
+Some systems require unusual options for compiling or linking that
+      the
+<BR><TT>configure</TT> script does not know about.  Run <TT>./configure -help</TT>
+      for details on some of the pertinent environment variables.
+
+<P>
+You can pass initial values for configuration parameters to <TT>configure</TT>
+      by setting variables in the command line or in the environment.  Here
+      is an example:
+
+<P>
+<PRE>
+% ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+</PRE> 
+
+<P>
+
+<H2><A NAME="SECTION00922000000000000000">
+Installation Names</A>
+</H2>
+
+<P>
+By default, <TT>make install</TT> will install the package's files in
+      <TT>/usr/local/bin</TT>, <TT>/usr/local/include</TT>, etc.  You can specify an
+      installation prefix other than <TT>/usr/local</TT> by giving <TT>configure</TT> the
+      option <TT>-prefix=PATH</TT>.
+
+<P>
+
+<H2><A NAME="SECTION00923000000000000000">
+Optional Features</A>
+</H2>
+
+<P>
+<DL>
+<DT><STRONG><TT>-enable-compinst=COMPINSTLIST</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable support for compiler instrumentation,
+<BR>
+e.g. (<TT>gnu,intel,pgi,phat,xl,ftrace</TT>), 
+<BR>
+A VampirTrace installation can handle different compilers. 
+<BR>
+The first item in the list is the run-time default. 
+<BR>
+default: automatically by configure
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-mpi</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable MPI support, default: enable if
+                              Open MPI found by configure
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-omp</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable OpenMP support, default: enable if 
+                              compiler supports OpenMP
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-hyb</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable Hybrid (MPI/OpenMP) support, default:
+                              enable if MPI found and compiler supports OpenMP
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-memtrace</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable memory tracing support, default: enable if
+                              found by configure
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-iotrace</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable libc's I/O tracing support, default: enable
+                              if libdl found by configure
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-dyninst</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable support for Dyninst instrumentation, 
+<BR>
+default: enable if found by configure 
+<BR>                              <SPAN  CLASS="textbf">Note:</SPAN> Requires Dyninst version 5.0.1 or higher!
+<BR>                              (<TT><A NAME="tex2html9"
+  HREF="http://www.dyninst.org">http://www.dyninst.org</A></TT>)
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-dyninst-attlib</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+build shared library which attaches dyninst to 
+                              the running application, 
+<BR>
+default: enable if dyninst found
+                              by configure and system supports shared libraries
+
+<P>
+</DD>
+<DT><STRONG><TT>-enable-papi</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+enable PAPI hardware counter support, 
+<BR>
+default: enable if found by configure
+</DD>
+</DL>
+
+<P>
+
+<H2><A NAME="SECTION00924000000000000000">
+Important Optional Packages</A>
+</H2>
+
+<P>
+<DL>
+<DT><STRONG><TT>-with-local-tmp-dir=LTMPDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for node-local temporary directory 
+                              to store local traces to, default: <TT>/tmp/</TT>
+</DD>
+</DL>
+
+<P>
+If you would like to use an external version of OTF library, set:
+<DL>
+<DT><STRONG><TT>-with-extern-otf</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+use external OTF library, default: not set
+</DD>
+<DT><STRONG><TT>-with-extern-otf-dir=OTFDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for OTF, default: <TT>/usr/local/</TT>
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-otf-flags=FLAGS</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+pass FLAGS to the OTF distribution configuration
+       (only for internal OTF version)
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-otf-lib=OTFLIB</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+use given otf lib, default: <TT>-lotf -lz</TT>
+
+<P>
+</DD>
+</DL>
+
+<P>
+If used OTF library was built without zlib support, then OTFLIB will
+be set to <TT>-lotf</TT>.
+
+<P>
+<DL>
+<DT><STRONG><TT>-with-dyninst-dir=DYNIDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for DYNINST, default: <TT>/usr/local/</TT>
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-papi-dir=PAPIDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for PAPI, default: <TT>/usr/</TT>
+</DD>
+</DL>
+
+<P>
+If you have not specified the environment variable <TT>MPICC</TT>
+(MPI compiler command), use the following options to set the location
+of your MPI installation:
+
+<P>
+<DL>
+<DT><STRONG><TT>-with-mpi-dir=MPIDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for MPI, default: <TT>/usr/</TT>
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-mpi-inc-dir=MPIINCDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for MPI include files, 
+<BR>
+default: <TT>$MPIDIR/include/</TT>
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-mpi-lib-dir=MPILIBDIR</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+give the path for MPI-libraries, default: <TT>$MPIDIR/lib/</TT>
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-mpi-lib=MPILIB</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+use given mpi lib
+
+<P>
+</DD>
+<DT><STRONG><TT>-with-pmpi-lib=PMPILIB</TT></STRONG></DT>
+<DD>&nbsp;
+<BR>
+use given pmpi lib, default: MPILIB
+</DD>
+</DL>
+
+<P>
+
+<H1><A NAME="SECTION00930000000000000000">
+Cross Compilation</A>
+</H1>
+
+<P>
+Building VampirTrace on cross compilation platforms needs some special attention.
+The compiler wrappers and OPARI are built for the front-end (build system) whereas
+the VampirTrace libraries, vtdyn, vtunify, and vtfilter are built for the back-end
+(host system). Some <TT>configure</TT> options which are of interest for cross compilation
+are shown below:
+
+<UL>
+<LI>Set <TT>CC</TT>, <TT>CXX</TT>, <TT>F77</TT>, and <TT>FC</TT> to the cross compilers installed on the front-end.
+</LI>
+<LI>Set <TT>CXX_FOR_BUILD</TT> to the native compiler of the front-end (used to compile compiler wrappers and OPARI only).
+</LI>
+<LI>Set <TT>-host=</TT> to the output of <TT>config.guess</TT> on the back-end.
+</LI>
+<LI>Maybe you also need to set additional commands and flags for the back-end (e.g. <TT>RANLIB</TT>, <TT>AR</TT>, <TT>MPICC</TT>, <TT>CXXFLAGS</TT>).
+</LI>
+</UL>
+For example, this <TT>configure</TT> command line works for an NEC SX6 system with an X86_64 based front-end:
+
+<P>
+<PRE>
+% ./configure CC=sxcc CXX=sxc++ F77=sxf90 FC=sxf90
+              AR=sxar RANLIB="sxar st" CXX_FOR_BUILD=c++
+              --host=sx6-nec-superux14.1
+              --with-otf-lib=-lotf
+</PRE> 
+
+<P>
+
+<H1><A NAME="SECTION00940000000000000000">
+Environment Set-Up</A>
+</H1>
+
+<P>
+Add the <TT>bin</TT> subdirectory of the installation directory to your 
+    <TT>$PATH</TT> environment variable. To use VampirTrace with Dyninst, 
+    you will also need to add the lib subdirectory to your 
+    <TT>LD_LIBRARY_PATH</TT> environment variable:
+<BR>
+<BR>
+<BR>
+for csh and tcsh:
+<PRE>
+&gt; setenv PATH &lt;vt-install&gt;/bin:$PATH
+&gt; setenv LD_LIBRARY_PATH &lt;vt-install&gt;/lib:$LD_LIBRARY_PATH
+</PRE> 
+    for bash and sh:
+<PRE>
+% export PATH=&lt;vt-install&gt;/bin:$PATH
+% export LD_LIBRARY_PATH=&lt;vt-install&gt;/lib:$LD_LIBRARY_PATH
+</PRE> 
+
+<P>
+
+<H1><A NAME="SECTION00950000000000000000">
+Notes for Developers</A>
+</H1>
+
+<P>
+
+<H2><A NAME="SECTION00951000000000000000">
+Build from CVS</A>
+</H2>
+
+<P>
+If you have checked out a <SPAN  CLASS="textit">developer's copy</SPAN> of VampirTrace (i.e.
+      checked out from CVS), you should first run:
+
+<P>
+<PRE>
+% ./bootstrap
+</PRE>
+Note that GNU Autoconf &ge;2.60 and GNU Automake &ge;1.9.6 is required.
+You can download them from <TT><A NAME="tex2html10"
+  HREF="http://www.gnu.org/software/autoconf">http://www.gnu.org/software/autoconf</A></TT> 
+and <TT><A NAME="tex2html11"
+  HREF="http://www.gnu.org/software/automake">http://www.gnu.org/software/automake</A></TT>.
+
+<P>
+
+<H2><A NAME="SECTION00952000000000000000">
+Creating a distribution tarball (VampirTrace-X.X.X.tar.gz)</A>
+</H2>
+
+<P>
+If you would like to create a new distribution tarball, run:
+
+<P>
+<PRE>
+% ./makedist -o &lt;otftarball&gt; &lt;major&gt; &lt;minor&gt; &lt;release&gt;
+</PRE>
+      instead of <TT>make dist</TT>.
+      The script <TT>makedist</TT> adapts the version number <TT>&lt;major&gt;.&lt;minor&gt;.&lt;release&gt;</TT> in
+      <TT>configure.in</TT> and extracts given OTF-tarball <TT>&lt;otftarball&gt;</TT> in 
+      <TT>./extlib/otf/</TT>.
+
+<P>
+<BR><HR>
+
+</BODY>
+</HTML>
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/ChangeLog
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/ChangeLog	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/ChangeLog	(revision 97)
@@ -0,0 +1,96 @@
+15. Improved C/C++ parsing
+    added support for bonded line-continuation in OpenMP directives.
+    For example
+
+      #pragma omp parallel\
+       private(i)
+
+    is now correctly instrumented. Prior a space or tabulator between
+    the last word and the line-continuation '\' was necessary.
+
+14. Improved Fortran parsing
+    instrument parallel fortran end do loops without OpenMP end do loop pragma.
+    Works for correctly nested do loops with
+    a) f90 END DO's
+    b) f77 labeled continue statements
+    The special case for b) where multiple loops use the same continue
+    statement as end do has restrictions: OPARI can only handle these cases
+    which do NOT require adding extra continue statements.
+
+13. !!!INCOMPATIBLE CHANGE!!!
+    POMP interface routines renamed from pomp_type_event to
+    POMP_Type_event. Necessary to allow porting to machines
+    where Fortran name mangling is all lowercase (like IBM).
+
+12. Support for Intel Linux compilers
+
+11. Improved C/C++ parsing so that cases where nested for loops
+    did not uses braces for all loop bodies work correctly now.
+    For example
+
+      #pragma omp for
+      for (i=0; i<N; ++i)
+        for (j=0; j<N; ++j) { }
+
+    is now correctly instrumented. Version 1.1 required extra braces
+    for the body of the "i" loop.
+
+10. Fixed support for threadprivate
+
+09. Port to Hitachi SR8000
+
+------------------- Released version 1.1 ---------------------
+
+08. Various portability fixes to allow OPARI to be compiled
+    with IBM xlC, SUN CC, SGI CC
+
+07. Fixed wrong C string comparison (without strcmp, but ==)
+    which worked by accident in handler.cc
+
+06. Improved version of POMP stub routines in subdirectory "lib".
+    Automatic configuration of fortran subroutine object names.
+
+05. Fixed that OPARI does not generate (wrong or incomplete)
+    files (output file, opari include file, opari table file, opari
+    resource file) in case of errors.
+
+04. New extended version of pragmas for user specified region
+    instrumentation. Version 1.0 allowed only a matching pair of
+    "INST BEGIN" and "INST END" directives/pragmas. This did not
+    allow to instrument user functions with more than one exit
+    point. For this situation, a new "INST ALTEND" directive/pragma
+    was introduced. This "alternative end user region" construct
+    can only appear between a matching "begin user region"
+    and "end user region" directive/pragma. Example:
+
+      void foo(bool b) {
+        #pragma pomp inst begin(foo)
+        if (b) {
+          #pragma pomp inst altend(foo)
+          return;
+        }    
+        #pragma pomp inst end(foo)
+      }
+
+03. Instrumentation for OpenMP "FLUSH" directives/pragmas added:
+
+      call pomp_flush_enter(d)
+      !$OMP FLUSH
+      call pomp_flush_exit(d)
+
+02. Improved C/C++ parsing so that cases where a statement or
+    block "closes" more than pragma are handled correctly. For
+    example
+
+      #pragma omp parallel
+        #pragma omp for
+          for (i=0; i<N; ++i) { }
+
+    is now correctly instrumented. Version 1.0 required extra braces
+    for the body of the "#pragma omp parallel".
+
+01. Fixed bug where incorrect runtime table file was produced when
+    opari was fed a program without any OpenMP regions.
+
+------------------- Released version 1.0 ---------------------
+
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/LICENSE
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/LICENSE	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/LICENSE	(revision 97)
@@ -0,0 +1,35 @@
+Copyright (c) 1998-2008, Forschungszentrum Juelich, Juelich Supercomputing
+                         Centre, Federal Republic of Germany
+
+Copyright (c) 2003-2008, University of Tennessee, Knoxville, United
+                         States of America
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+* Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+* Neither the names of Forschungszentrum Juelich, Juelich Supercomputing
+  Centre, or the University of Tennessee, Knoxville, nor the names of
+  their contributors may be used to endorse or promote products derived
+  from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/Readme.html
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/Readme.html	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/opari/Readme.html	(revision 97)
@@ -0,0 +1,304 @@
+<html>
+
+<head>
+<title>OPARI: OpenMP Pragma And Region Instrumentor</title>
+</head>
+
+<body bgcolor="#FFFFFF">
+
+<div align="center">
+<img src="opari-logo-100.gif">
+</div>
+
+<h1 align="center"><font color="#FF0000">O</font>penMP
+<font color="#FF0000">P</font>ragma
+<font color="#FF0000">A</font>nd
+<font color="#FF0000">R</font>egion
+<font color="#FF0000">I</font>nstrumentor - </h1>
+<div align="center">
+Version 1.1, October 2001
+<p>
+&copy; 2001 Forschungszentrum J&uuml;lich, ZAM, Germany
+<br>Bernd Mohr
+</div>
+
+<p>
+
+<div align="justify">
+
+<font color="#0000FF">OPARI</font> is a source-to-source translation tool
+which automatically adds all necessary calls to the
+<font color="#0000FF">pomp</font> runtime measurement library which
+allows to collect runtime performance data of Fortran, C, or C++ OpenMP
+applications. It is based on the idea of OpenMP pragma/directive
+rewriting which is described in detail in a paper
+(<a href="lacsi01.ps.gz">PostScript</a>, 
+ <a href="lacsi01.pdf">PDF</a>) 
+for <a href="http://lacsi.lanl.gov/symposium/">LACSI'01</a>.
+
+<p>
+
+<font color="#0000FF">OPARI</font> was developed as part of the
+<a href="http://www.fz-juelich.de/zam/kojak/">KOJAK</a> and
+<a href="http://www.acl.lanl.gov/tau/">TAU</a> projects.
+
+<h2><hr>DOWNLOAD<hr></h2>
+
+This software is <b>free</B> but <b>copyright</B> &copy; 2001 by
+Forschungszentrum Juelich, ZAM, Germany. By downloading and using this
+software you automatically agree to comply with the regulations as
+described in the <a href="LICENSE">license agreement</a>.
+
+<p>
+<table border=1>
+<tr>
+    <th colspan=3>Sources in gzipped tar format
+</tr>
+<tr>
+    <th>Version
+    <th>Date
+    <th>Description
+</tr>
+<tr>
+    <td>1.1
+    <td>17-Oct-2001
+    <td><a href="ChangeLog">Changes</a>
+</tr>
+<tr>
+    <td>1.0
+    <td>28-Aug-2001
+    <td>Initial version
+</tr>
+</table>
+<p>
+
+<h2><hr>USAGE<hr></h2>
+
+Before compiling the source files of an OpenMP application, each file
+needs to be transformed by a call to the <font color="#0000FF">OPARI</font>
+tool. In addition, the application has to be linked against the
+<font color="#0000FF">pomp</font> runtime measurement library and the
+<font color="#0000FF">OPARI</font> runtime table file. The latter has to
+be generated by using the <tt><b>-table</b></tt> option to
+<font color="#0000FF">OPARI</font> either together with the
+transformation of the <b>last</b> input source file or with a separate call
+to <font color="#0000FF">OPARI</font> after all transformations are done.
+A call to <font color="#0000FF">OPARI</font> has the following syntax:
+</div>
+<pre><b>
+     opari [-f77|-f90|-c|-c++] [-nosrc] [-disable <i>constructs</i>]
+           [-rcfile <i>file</i>] [-table <i>tabfile</i>] <i>infile</i> [outfile]
+</b>or:<b>
+     opari [-rcfile <i>file</i>] -table <i>tabfile</i>
+</b></pre>
+<div align="justify">
+
+The options and parameters have the following meaning:
+
+<table cellspacing=10>
+<tr>
+  <td valign="top"><tt><b>[-f77|-f90|-c|-c++]</b></tt>
+  <td valign="top">[OPTIONAL]&nbsp;&nbsp;Specifies the programming language
+      of the input source file. This option is only
+      necessary if the automatic language detection
+      based on the input file suffix fails.
+</tr>
+<tr>
+  <td valign="top"><tt><b>[-nosrc]</b></tt>
+  <td valign="top">[OPTIONAL]&nbsp;&nbsp;If specified,
+      <font color="#0000FF">OPARI</font> does not generate
+      <tt><b>#line</b></tt> constructs in the transformation process
+      which allow to preserve the original source file
+      and line number information. This option might
+      be necessary if the OpenMP compiler does not
+      understand <tt><b>#line</b></tt> constructs. The default is to
+      generate <tt><b>#line</b></tt> constructs.
+</tr>
+<tr>
+  <td valign="top"><tt><b>[-rcfile <i>file</i>]</b></tt>
+  <td valign="top">[OPTIONAL]&nbsp;&nbsp;<font color="#0000FF">OPARI</font>
+      uses the file <tt><b>./opari.rc</b></tt> to preserve state information
+      between calls to <font color="#0000FF">OPARI</font> if the OpenMP
+      application consists of more than one source file. With the
+      <tt><b>-rcfile</b></tt> option the file <tt><b><i>file</i></b></tt> is
+      used instead.  This can be useful if more than one application is
+      stored in the same directory or if the source files of an application
+      are stored in more than one directory.
+</tr>
+<tr>
+  <td valign="top"><tt><b>-table <i>tabfile</i></b></tt>
+  <td valign="top">Generate the <font color="#0000FF">OPARI</font> runtime
+      table in file <tt><b><i>tabfile</i></b></tt>.
+      This option has to be used either together with the
+      call to <font color="#0000FF">OPARI</font> for the transformation of
+      the <b>last</b> input source file or with a separate call to
+      <font color="#0000FF">OPARI</font> after all transformations are done.
+</tr>
+<tr>
+  <td valign="top"><tt><b>-disable <i>constructs</i></b></tt>
+  <td valign="top">[OPTIONAL]&nbsp;&nbsp;Disable the instrumentation of 
+      the more fine-grained OpenMP constructs such as <tt><b>!$OMP</b></tt>
+      <tt><b>ATOMIC</b></tt>. <tt><b><i>constructs</i></b></tt>
+      is a comma separated list of the constructs for which the
+      instrumentation should be disabled. Accepted tokens are
+      <tt><b>atomic</b></tt>, <tt><b>critical</b></tt>, <tt><b>master</b></tt>,
+      <tt><b>flush</b></tt>, <tt><b>single</b></tt>, or <tt><b>locks</b></tt>
+      as well as <tt><b>sync</b></tt> to disable all of them.
+</tr>
+<tr>
+  <td valign="top"><tt><b><i>infile</i></b></tt>
+  <td valign="top">Input file name.
+</tr>
+<tr>
+  <td valign="top"><tt><b>[<i>outfile</i>]</b></tt>
+  <td valign="top">[OPTIONAL]&nbsp;&nbsp;Output file name. If not specified,
+      <font color="#0000FF">OPARI</font> uses the name
+      <tt><b><i>infile</i>.mod.<i>suffix</i></b></tt> if
+      the input file is called <tt><b><i>infile</i>.<i>suffix</i></b></tt>.
+</tr>
+</table>
+
+In addition to the modified output file, <font color="#0000FF">OPARI</font>
+also generates a file named <tt><b><i>infile</i>.opari.inc</b></tt>. It
+contains OpenMP region descriptors, one for each OpenMP region found in the
+input file. The meaning of the descriptor fields are described in the file
+<tt><b>pomp_lib.h</b></tt>.
+
+<p>
+
+In summary, the typical usage of <font color="#0000FF">OPARI</font> consists of the following steps:
+
+<ol>
+<li>Reset <font color="#0000FF">OPARI</font> state information by removing
+    the state information file if it exists.
+    <pre><b>
+    % rm -f opari.rc
+    </b></pre>
+
+<li>Call <font color="#0000FF">OPARI</font> for each input source file
+    <pre><b>
+    % opari file1.f90
+    ...
+    % opari fileN.f90
+    </b></pre>
+
+<li>Generate the <font color="#0000FF">OPARI</font> runtime table and
+    compile it using a ANSI C compiler
+    <pre><b>
+    % opari -table opari.tab.c
+    % cc -c opari.tab.c
+    </b></pre>
+
+<li>Compile all modified output files <tt><b>*.mod.*</b></tt> using the OpenMP
+    compiler
+    <p>
+
+<li>Link the resulting object files against the
+    <font color="#0000FF">OPARI</font> runtime table
+    <tt><b>opari.tab.o</b></tt> and the <font color="#0000FF">pomp</font>
+    runtime measurement library.
+</ol>
+
+<h2><hr>LIMITATIONS<hr></h2>
+
+<font color="#0000FF">OPARI</font> understands all OpenMP constructs by the
+<a href="http://www.openmp.org/specs/">Fortran 77/90 OpenMP 2.0</a> and
+<a href="http://www.openmp.org/specs/">C/C++ OpenMP 1.0</a> specifications
+as well as the OpenMP extension <tt><b>INST</b></tt> directives/pragmas
+and the alternative <tt><b>POMP</b></tt> sentinel proposed in
+<a href="lacsi01.ps.gz">lacsi01.ps.gz</a> / 
+<a href="lacsi01.pdf">lacsi01.pdf</a>.
+
+<h3>Limitations due to fuzzy parsing</h3>
+
+Because <font color="#0000FF">OPARI</font> does not contain full parsers for
+the supported programming languages the following restrictions apply:
+
+<h4>Fortran 77/90:</h4>
+
+<ol>
+<li> The <tt><b>!$OMP</b></tt> <tt><b>END</b></tt> <tt><b>DO</b></tt> and
+     <tt><b>!$OMP</b></tt> <tt><b>END</b></tt> <tt><b>PARALLEL</b></tt>
+     <tt><b>DO</b></tt> directives
+     are required (and not optional as described in the OpenMP specification)
+<p>
+<li> The <i>atomic expression</i> controlled by a
+     <tt><b>!$OMP</b></tt> <tt><b>ATOMIC</b></tt>
+     directive has to be on a line all by itself.
+<p>
+<li> If the measurement environment does not support the automatic
+     recording of user function entries and exits, the
+     <font color="#0000FF">OPARI</font> runtime
+     measurement library has to be initialized by a
+     <tt><b>!$OMP</b></tt> <tt><b>INST</b></tt> <tt><b>INIT</b></tt>
+     directive prior to any other OpenMP directive.
+</ol>
+     
+<h4>C/C++:</h4>
+
+<ol>
+<li> <i>structured blocks</i> describing the extend of an OpenMP pragma
+     need to be either compound statements <tt><b>{....}</b></tt>,
+     <tt><b>while</b></tt> loops, or simple statements. In addition,
+     <tt><b>for</b></tt> loops are supported after
+     <tt><b>omp</b></tt> <tt><b>for</b></tt> and <tt><b>omp</b></tt>
+     <tt><b>parallel</b></tt> <tt><b>for</b></tt> pragmas.
+     Complex statements like
+     <tt><b>if-then-else</b></tt> or <tt><b>do-while</b></tt> need to
+     be enclosed in a block ( <tt><b>{....}</b></tt> ). 
+<p>
+<li> If the measurement environment does not support the automatic
+     recording of user function entries and exits, the
+     <font color="#0000FF">OPARI</font> runtime measurement library has to
+     be initialized by a <tt><b>omp</b></tt> <tt><b>inst</b></tt>
+     <tt><b>init</b></tt> pragma prior to any other OpenMP pragma.
+</ol>
+   
+We did not find these limitations overly restrictive during our tests and
+experiments. They rarely apply for well-written code. If they do, the
+original source code can easily be fixed.  Of course, it would be possible
+to remove these limitations by enhancing <font color="#0000FF">OPARI</font>`s
+parsing sophistication.
+
+<h3>Limitations due to source-to-source translation</h3>
+
+In addition, because of some subtleties in the OpenMP standard specifications,
+the transformations performed by <font color="#0000FF">OPARI</font> on the
+source code level can differ from the same instrumentation done by a real
+OpenMP compiler. Here is the list of limitations we currently know about:
+<ul>
+<li><font color="#0000FF">OPARI</font> makes implicit barriers explicit.
+    Unfortunately, this method cannot be used for measuring the barrier waiting
+    time at the end of <tt><b>PARALLEL</tt></b> directives because they do not
+    allow a <tt><b>NOWAIT</tt></b> clause. Therefore, we add an explicit
+    barrier with corresponding performance interface calls here. For <font
+    color="#0000FF">OPARI</font>, this means that actually two barriers get
+    called. But the second (implicit) barrier should execute and succeed
+    immediately because the threads of the OpenMP team are already synchronized
+    by the first barrier.
+<p>
+<li>The OpenMP standard (unfortunately) allows compilers to ignore
+    <tt><b>NOWAIT</tt></b>s, which means that in this case <font
+    color="#0000FF">OPARI</font> inserts an extra barrier and the
+    <font color="#0000FF">pomp</font> functions get invoked on this extra
+    (and not the real) barrier.
+<p>
+<li><font color="#0000FF">OPARI</font> cannot instrument the (required)
+    internal synchronization inside <tt><b>!$OMP</tt></b>
+    <tt><b>WORKSHARE</tt></b>.
+<p>
+<li>Mark Bull's <a
+    href="http://www.epcc.ed.ac.uk/research/openmpbench/">Microbenchmarks</a>
+    show that some compiler use different implementations (with different
+    characteristics) for implicit and explicit barriers. If <font
+    color="#0000FF">OPARI</font> changes implicit to explicit barriers, we
+    measure the wrong behavior on these compilers.
+</ul>
+
+Of course, an OpenMP compiler can insert the <font color="#0000FF">pomp</font>
+performance interface calls directly around the implicit barriers, thereby
+avoiding the described overheads and discrepancies.
+
+</div>
+</body>
+</html>
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/ChangeLog
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/ChangeLog	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/ChangeLog	(revision 97)
@@ -0,0 +1,227 @@
+1.3.12
+	- added tool 'otfinfo' which can be used to get basic information of
+	  a trace
+	- removed python bindings
+	  (a working version of the OTF python bindings are available in the
+	  latest stand-alone release; see http://www.tu-dresden.de/zih/otf/)
+
+1.3.11
+	- build/install tool 'otfdump' by default
+	- install documentation
+	- bugfix: removed included system headers inside 'extern "C" {}'
+	- bugfix: added configure check for functions 'fseeko()' and 'ftello()'
+	  (these functions are not available on NEC SX platforms)
+
+1.3.10
+	- added configure option '--[enable|disable]-binaries' to control
+	  building of binaries (useful for multi-lib installations)
+
+1.3.9
+	- fixed a portability bug: use own implementation of function
+	  'strdup()'
+	- install a symbolic link 'otfdecompress' which is a synonym for
+	  'otfcompress -d'
+
+1.3.8
+	- generate OTF_inttypes.h during configuring which provides
+	  the integer types like int64_t, int8_t,...
+	- shared OTF library will be linked with zlib, thus additionally
+	  linking with zlib is not necessary
+	- bugfix in otf2vtf: correctly handle function leave records with id 0
+
+1.3.7
+	- added example for using OTF_MasterControl to the doxygen documentation
+	- general improvement of the documentation
+	- improved autoconf's m4 scripts for cross buildings
+
+1.3.6
+	- OTF_{Keywords.h,Parse.h,Platform.h} will no longer be installed
+	- added a compile time assert making sure the correct sizes of the
+	  integer types ([u]int*_T)
+	- OTF is now Windows Visual Studio compatible
+
+1.3.5
+	- added doxygen html documentation (docu/doxygen/html/index.html)
+	- fixed issue, where newlines were forbidden in def, stats and snaps
+	- added missing const to OTF_WStream_writeDefProcessGroup()
+
+1.3.4
+	- bug fix in otfmerge: missing handling of DefCollectiveOperation
+	- bugfix in the documentation: overview.eps was broken
+
+1.3.3
+	- fixed configure bug when searching for zlib on mac
+	- fixed bug in otfmerge, where the parameter "-n 0" caused an error
+	- added macros for specifing the data type of the counter
+	  (OTF_COUNTER_VARTYPE_*)
+	- fixed otfconfig help text
+	- fixed bugs when using make dist
+	- python bindings disabled by default
+	- fixed configure bug, when using python bindings
+	- updated python bindings to support user defined counters
+
+1.3.2
+	- added small functions to convert various variable types to common 
+	  counter type uint64_t. By this means, other types can be transported 
+	  as uint64_t and re-casted during reading.
+	  This requires type information as additional counter property flags!
+
+1.3.1
+	- if an fopen() call fails an error is now printed out every time
+	- OTF_READ_ERROR was introduced as an error return value for all
+	  OTF_Reader_readXXX and OTF_RStream_readXXX functions. So (uint64_t)-1 is
+	  now a reserved value, thus cannot be used as record limit.
+	  The record limit always has to be smaller than or equal to
+	  OTF_READ_MAXRECORDS.
+	- fixed issue in otfmerge, when using many streams
+
+1.3
+	- integrated libtool for shared and static linkage to otf
+	- removed the possibility to include zlib symbols into otf
+	- fixed warning which appeared when not using zlib
+	- added python bindings to the otf library
+
+1.2.24
+	- minor change in otf[de|un]compress
+	- strictly avoid writing of unsorted time stamps. Now, there will be an
+	  error message and the corresponding buffer/stream will be disabled for
+	  further writing. The write routines provide an invlaid return code but
+	  currently there is no way to "repair" the buffer/stream after an unsorted
+	  time stamp has been issued.
+
+1.2.23
+	- removed libtool from autoconf to make configure much faster, 
+	  libtool was not used by automake anyhow
+	- removed some autoconf-generated files from CVS, 
+	  you might need to re-run 'sh bootstrap' yourself
+
+1.2.22
+	- fixed inttypes/stdint bug
+
+1.2.21
+	- fixed "--with-zlib-symbols"-bug
+
+1.2.20
+	- added own inttypes definitions in case there is no on the platform 
+	  (necessary on NEC SX6)
+
+1.2.19
+	- finished otfdump
+	- removed debug output in OTF_Reader.c
+	- re-introduced DefVersion record as read only
+
+1.2.18
+	- added fwrite check for writting less bytes than expected
+	- re-write of otfdump. Now, it uses OTF read lib instead of plain scanf. 
+	  It produces nicer output and numbers records in read order.
+
+1.2.17
+	- bugfixed parser (wrong treatment of unknown records)
+	- added FileGroupOperationSummary record
+	- changed FileOperation-, OpenFileSnapshot- and FileOperationSummary- record
+	  NOTE: these records are still experimental
+	- included file operation records into all tools
+	  NOTE: some parameters were added/changed
+	- the byte-parameter in the FileOperation record does now contain the
+	  new position in the file file after the seek operation
+	- bugfixed otfmerge
+
+1.2.16
+	- fixed a problem with comments in otfmerge
+	- 2 new records introduced (NOTE: these are experimental):
+	  - OpenFileSnapshot
+	  - FileOperationSummary
+
+1.2.15
+	- 3 new records introduced (NOTE: these are experimental):
+	- DefFile
+	  - DefFileGroup
+	  - FileOperation
+
+1.2.14
+	- do not linke with '-lz' if '--with-zlibsymbols' was specified
+	- added zlib include line to otflib/Makefile.am
+
+1.2.13
+	- removed intel compiler warnings
+	- changed OTF_FILETYPE_*-macros
+	- fixed issues with OTF_getFilename()
+
+1.2.12
+	- removed intel compiler warnings in otfmerge
+	- removed debug output
+	- fixed 64bit issue
+
+1.2.11
+	- changed OTF_RETURN*( 0=success, !0 = error )
+	- added these macros to all internal functions and tools for better
+	  consistency
+	- fixed various memoryleaks in otf and otfmerge
+	- added otfconfig to tools. otfconfig shows installationparameters
+	  important for developers
+	- updated documentation
+
+1.2.10
+	- bugfix: otfmerge does no longer accept traces with local streams
+
+1.2.9
+	- changeable zlevel
+	- changeable zbuffersize
+
+1.2.8
+	- allow suffix '.dylib' for zlib library file (from Mac OS X)
+	- removed configure warning
+
+1.2.7
+	- added progress functions to OTF_RStream
+	- added a progress counter to otfmerge
+
+1.2.6
+	- support shared libraries
+
+1.2.5
+	- bugfix: correctly handle process groups with more than 1000 entries
+
+1.2.4
+	- bugfix: zlib compression bug, wrong sanity check fixed
+
+1.2.3
+	- bugfix: provided copy handlers returned wrong value
+
+1.2.2
+	- important bugfix: definitionstream 0 was ignored since version 1.2
+
+1.2.1
+	- added progress functions using read bytes instead of timestamps
+
+1.2
+	- introduce transparent zlib compression
+
+1.1.5
+	- have UnknownRecord report handle incomplete records or additional bytes at 
+	  the end of a file.
+
+1.1.4
+	- fixed a bug in OTF_Reader which might have caused the very first 
+	  time stamp of a trace to be not properly sorted
+	- introduced '--snapshots' and '--statistics' switches to do only 
+	  snapshots or statistics. for statistics a selective mode is allowed
+	  which regards only some streams. By this means statistics can be created
+	  in parallel by calling otfaux multiple times.
+
+1.1.3
+	- fixed a minor bug in otfaux
+
+1.1.2
+	- inverted return value of call-back handlers: 
+	  '0' is non-error, '!= 0' is regarded as an error, now!
+	  (this makes OTF conform with the VTF3 scheme.)
+
+1.1.1
+	- OTF_Reader now considers the return values of the handlers
+	- added OTF_VERBOSE, OTF_DEBUG macro for error treatment
+	- introduced 'UnknownRecord' handler which allows to catch
+	  unknown record types
+
+1.0
+	- initial version
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/LICENSE
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/LICENSE	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/doc/otf/LICENSE	(revision 97)
@@ -0,0 +1,29 @@
+Copyright (c) 2005-2008, ZIH, Technische Universitaet Dresden,
+Federal Republic of Germany
+
+ All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, 
+are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice, 
+this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright notice, 
+this list of conditions and the following disclaimer in the documentation and/or 
+other materials provided with the distribution.
+
+- Neither the name of ZIH, TU Dresden nor the names of its contributors 
+may be used to endorse or promote products derived from this software without 
+specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcc-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcc-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcc-wrapper-data.txt	(revision 97)
@@ -0,0 +1,25 @@
+version=5.4.10
+language=C
+compiler_env=VT_CC
+compiler_flags_env=VT_CFLAGS
+compiler=ppu-gcc
+compiler_flags=-m64
+linker_flags=-m64
+libs= -lotf          -ldl 
+includedir=/export/home/stud/bucicoiu.mihai/openmpi_installed/include/vampirtrace
+libdir=/export/home/stud/bucicoiu.mihai/openmpi_installed/lib
+opari_bin=/export/home/stud/bucicoiu.mihai/openmpi_installed/bin/opari
+opari_tab_compiler=ppu-gcc
+opari_tab_compiler_flags=-m64
+pmpilib=
+fmpilib=
+dynattlib=
+compiler_iflags_gnu=-g -finstrument-functions
+compiler_iflags_intel=-g -finstrument-functions
+compiler_iflags_pathscale=-g -finstrument-functions
+compiler_iflags_pgi=-Mprof=func
+compiler_iflags_sun=
+compiler_iflags_xl=-qdebug=function_trace
+compiler_iflags_ftrace=-ftrace
+inst_avail=manual pomp gnu
+inst_default=gnu
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcxx-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcxx-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/vtcxx-wrapper-data.txt	(revision 97)
@@ -0,0 +1,25 @@
+version=5.4.10
+language=C++
+compiler_env=VT_CXX
+compiler_flags_env=VT_CXXFLAGS
+compiler=ppu-g++
+compiler_flags=-m64
+linker_flags=-m64
+libs= -lotf          -ldl 
+includedir=/export/home/stud/bucicoiu.mihai/openmpi_installed/include/vampirtrace
+libdir=/export/home/stud/bucicoiu.mihai/openmpi_installed/lib
+opari_bin=/export/home/stud/bucicoiu.mihai/openmpi_installed/bin/opari
+opari_tab_compiler=ppu-gcc
+opari_tab_compiler_flags=-m64
+pmpilib=
+fmpilib=
+dynattlib=
+compiler_iflags_gnu=-g -finstrument-functions
+compiler_iflags_intel=-g -finstrument-functions
+compiler_iflags_pathscale=-g -finstrument-functions
+compiler_iflags_pgi=-Mprof=func
+compiler_iflags_sun=
+compiler_iflags_xl=-qdebug=function_trace
+compiler_iflags_ftrace=-ftrace
+inst_avail=manual pomp gnu
+inst_default=gnu
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf77-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf77-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf77-wrapper-data.txt	(revision 97)
@@ -0,0 +1,25 @@
+version=5.4.10
+language=Fortran 77
+compiler_env=VT_F77
+compiler_flags_env=VT_FFLAGS
+compiler=
+compiler_flags=-m64
+linker_flags=-m64
+libs= -lotf          -ldl 
+includedir=/export/home/stud/bucicoiu.mihai/openmpi_installed/include/vampirtrace
+libdir=/export/home/stud/bucicoiu.mihai/openmpi_installed/lib
+opari_bin=/export/home/stud/bucicoiu.mihai/openmpi_installed/bin/opari
+opari_tab_compiler=ppu-gcc
+opari_tab_compiler_flags=-m64
+pmpilib=
+fmpilib=-lvt.fmpi
+dynattlib=
+compiler_iflags_gnu=-g -finstrument-functions
+compiler_iflags_intel=-g -finstrument-functions
+compiler_iflags_pathscale=-g -finstrument-functions
+compiler_iflags_pgi=-Mprof=func
+compiler_iflags_sun=-O -Qoption f90comp -phat
+compiler_iflags_xl=-qdebug=function_trace
+compiler_iflags_ftrace=-ftrace
+inst_avail=manual pomp gnu
+inst_default=gnu
Index: proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf90-wrapper-data.txt
===================================================================
--- proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf90-wrapper-data.txt	(revision 97)
+++ proiecte/hpl/openmpi_compiled/share/vampirtrace/vtf90-wrapper-data.txt	(revision 97)
@@ -0,0 +1,25 @@
+version=5.4.10
+language=Fortran 90
+compiler_env=VT_FC
+compiler_flags_env=VT_FCFLAGS
+compiler=
+compiler_flags=
+linker_flags=-m64
+libs= -lotf          -ldl 
+includedir=/export/home/stud/bucicoiu.mihai/openmpi_installed/include/vampirtrace
+libdir=/export/home/stud/bucicoiu.mihai/openmpi_installed/lib
+opari_bin=/export/home/stud/bucicoiu.mihai/openmpi_installed/bin/opari
+opari_tab_compiler=ppu-gcc
+opari_tab_compiler_flags=-m64
+pmpilib=
+fmpilib=-lvt.fmpi
+dynattlib=
+compiler_iflags_gnu=-g -finstrument-functions
+compiler_iflags_intel=-g -finstrument-functions
+compiler_iflags_pathscale=-g -finstrument-functions
+compiler_iflags_pgi=-Mprof=func
+compiler_iflags_sun=-O -Qoption f90comp -phat
+compiler_iflags_xl=-qdebug=function_trace
+compiler_iflags_ftrace=-ftrace
+inst_avail=manual pomp gnu
+inst_default=gnu
