wiki:SandBox

Version 5 (modified by aclsce, 11 years ago) (diff)

--

How to extract and compile XIOS

  • cd XIOS
  • ./make_xios --help (or ./make_xios -h)
    make_xios - installs XIOS on your architecture
    make_xios [options]
    options :
           [--prod] : compilation in production mode (default)
           [--dev] : compilation in development mode
           [--debug] : compilation in debug mode
           --arch arch : to choose target architecture
           [--avail] : to know available target architectures 
           [--full] : to generate dependencies and recompile from scratch
           [--use_oasis] : to use Oasis coupler
           [--doc] : to generate Doxygen documentation (not available yet)
           [--job ntasks] : to use parallel compilation with ntasks
           [--netcdf_lib 'netcdf4_par'/'netcdf4_seq' : default netcdf4_par] : choice of netcdf library
    
  • Known architectures : ./make_xios --avail
    GCC_LINUX
    GCC_MACOSX
    IA64_PLATINE
    PW6_VARGAS
    X64_CURIE
    X64_HORUS
    X64_TITANE
    X64_TITANE_GCC
    X64_TITANE_VAMPIR
    X86_LOCGNU_FEDORA
    X86_LOCINTEL_FEDORA
    XT6_LYNX
    
    
  • Compilation
    • On an known architecture. For example : ./make_xios --arch X64_CURIE
    • On an new architecture. You have to create your "arch_NEW_ARCH.fcm" and "arch_NEW_ARCH.path" files
  • Choice of compilation mode. As explained in the "help", there are three compilation modes :
    • [--prod] : compilation in production mode (default)
    • [--dev] : compilation in development mode
    • [--debug] : compilation in debug mode

For example : ./make_xios --dev --arch PW6_VARGAS

  • Use of "arch*.env" file. "arch*.env" file is an optionnal file (used only if it exists) which allows to define a compilation evironment in order to compile XIOS server.

For example : cat arch-X64_TITANE_GCC.env

module unload bullxmpi
module load openmpi/1.4.2_gnu
module unload intel
module load gcc

export HDF5_INC_DIR=$WORKDIR/hdf5/include
export HDF5_LIB_DIR=$WORKDIR/hdf5_gnu/lib

export NETCDF_INC_DIR=$WORKDIR/netcdf4/include
export NETCDF_LIB_DIR=$WORKDIR/netcdf4_gnu/lib
  • Use of netcdf library. It is possible to use netcdf in parallel mode or sequential mode :
    • --netcdf_lib netcdf4_seq : only the multiple_file writing mode is available.
    • --netcdf_lib netcdf4_par : both one_file mode and mutliple_file mode are available.

How to run XIOS test

The compilation is ok. You have now two executables files in XIOS/bin directory :

  • test_client.exe : a test client executbale
  • xios_server.exe : server executable

You can play with XIOS using test_client.exe (and xios_server.exe) to run on attached mode (and server mode i.e MPMD mode)

  • Attached mode :
<variable id="using_server" type="boolean">false</variable>

The xios library is linked to client test. The server executable is not used. The asynchroneous writing mode is not activated. The parallel writing mode (i.e one_file ) is available.

For example on curie machine : ccc_msub Job with Job :

#!/usr/bin/ksh
#MSUB -r XIOS       # nom de la requete
#MSUB -o Script_Output_XIOS.000001    # nom du fichier de sortie
#MSUB -e Script_Output_XIOS.000001    # nom du fichier de sortie
#MSUB -eo
#MSUB -n 10 # reservation des processeurs pour le job
#MSUB -T 1800             # Limite temps (en secondes)
#MSUB -q standard
#MSUB -Q test
#MSUB -p gen2211

cd /ccc/scratch/cont003/dsm/p86caub/XIOS/bin
/usr/bin/time ccc_mprun ./test_client.exe

  • Server mode
 <variable id="using_server" type="boolean">true</variable>

The server executable is used. The asynchroneous writing mode is activated. The parallel writing mode (i.e one_file ) is available.

For example on vargas machine : llsubmit Job

with Job :

# Nom de la requete
# @ job_name = Jobname
# @ job_type = parallel
# Fichier de sortie standard
# @ output = Script_Output_000001
# Fichier de sortie erreur (le meme)
# @ error = Script_Output_000001
# Nombre de processus demandes
# @ total_tasks = 10
# Temps CPU max. par processus MPI hh:mm:ss
# @ wall_clock_limit = 0:10:00
# Memoire max. utilisee par processus
# @ data_limit = 3.2gb
# Memoire stack a etendre si besoin
## @ stack_limit = 0.5gb,0.5gb
# Pas d OpenMP
# @ resources = ConsumableCpus(1)
# Fin de l entete
# @ queue
# @ class = debug
 
cd /workgpfs/rech/ces/rces061/XIOS/bin
poe -pgmmodel MPMD -cmdfile ./run_file

with run_file ( this configuration will launch test_client on 8 processes and xios server on 2 processes ):

./test_client.exe
./test_client.exe
./test_client.exe
./test_client.exe
./test_client.exe
./test_client.exe
./test_client.exe
./test_client.exe
./xios_server.exe
./xios_server.exe
  • Multiple_file mode
 <file_definition type="multiple_file">

Each client process (or server process) in attached mode (or server mode) writes its output file. Mode available with both "netcdf4_par" and "netcdf4_seq".

  • One_file mode
<file_definition type="one_file">

Parallel writing from each client process (or server process) in attached mode (or server mode) to one file. Mode available only with "netcdf4_par".