5 | | Go ahead, edit it freely. |
| 5 | * cd XIOS[[BR]] |
| 6 | |
| 7 | * '''./make_xios --help''' (or ./make_xios -h) |
| 8 | {{{ |
| 9 | make_xios - installs XIOS on your architecture |
| 10 | make_xios [options] |
| 11 | options : |
| 12 | [--prod] : compilation in production mode (default) |
| 13 | [--dev] : compilation in development mode |
| 14 | [--debug] : compilation in debug mode |
| 15 | --arch arch : to choose target architecture |
| 16 | [--avail] : to know available target architectures |
| 17 | [--full] : to generate dependencies and recompile from scratch |
| 18 | [--use_oasis] : to use Oasis coupler |
| 19 | [--doc] : to generate Doxygen documentation (not available yet) |
| 20 | [--job ntasks] : to use parallel compilation with ntasks |
| 21 | [--netcdf_lib 'netcdf4_par'/'netcdf4_seq' : default netcdf4_par] : choice of netcdf library |
| 22 | }}} |
| 23 | |
| 24 | * Known architectures : '''./make_xios --avail''' |
| 25 | {{{ |
| 26 | GCC_LINUX |
| 27 | GCC_MACOSX |
| 28 | IA64_PLATINE |
| 29 | PW6_VARGAS |
| 30 | X64_CURIE |
| 31 | X64_HORUS |
| 32 | X64_TITANE |
| 33 | X64_TITANE_GCC |
| 34 | X64_TITANE_VAMPIR |
| 35 | X86_LOCGNU_FEDORA |
| 36 | X86_LOCINTEL_FEDORA |
| 37 | XT6_LYNX |
| 38 | |
| 39 | }}} |
| 40 | |
| 41 | * Compilation |
| 42 | * On an known architecture. For example : '''./make_xios --arch X64_CURIE''' |
| 43 | * On an new architecture. You have to create your "arch_NEW_ARCH.fcm" and "arch_NEW_ARCH.path" files[[BR]] |
| 44 | |
| 45 | * Choice of compilation mode. As explained in the "help", there are three compilation modes : |
| 46 | * [--prod] : compilation in production mode (default) |
| 47 | * [--dev] : compilation in development mode |
| 48 | * [--debug] : compilation in debug mode |
| 49 | For example : '''./make_xios --dev --arch PW6_VARGAS''' |
| 50 | |
| 51 | * 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. |
| 52 | |
| 53 | For example : cat arch-X64_TITANE_GCC.env |
| 54 | |
| 55 | {{{ |
| 56 | module unload bullxmpi |
| 57 | module load openmpi/1.4.2_gnu |
| 58 | module unload intel |
| 59 | module load gcc |
| 60 | |
| 61 | export HDF5_INC_DIR=$WORKDIR/hdf5/include |
| 62 | export HDF5_LIB_DIR=$WORKDIR/hdf5_gnu/lib |
| 63 | |
| 64 | export NETCDF_INC_DIR=$WORKDIR/netcdf4/include |
| 65 | export NETCDF_LIB_DIR=$WORKDIR/netcdf4_gnu/lib |
| 66 | }}} |
| 67 | |
| 68 | * Use of netcdf library. It is possible to use netcdf in parallel mode or not : |
| 69 | * --netcdf_lib netcdf4_seq : only the multiple_file writing mode is available. |
| 70 | * --netcdf_lib netcdf4_par : both one_file and mutliple_file are available. |
| 71 | |
| 72 | == How to run XIOS test == |
| 73 | |
| 74 | The compilation is ok. You have now two executables files in XIOS/bin directory : |
| 75 | * test_client.exe : a test client executbale |
| 76 | * xios_server.exe : server executable |
| 77 | |
| 78 | 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) |
| 79 | |
| 80 | * Attached mode : |
| 81 | |
| 82 | {{{ |
| 83 | <variable id="using_server" type="boolean">false</variable> |
| 84 | |
| 85 | }}} |
| 86 | |
| 87 | 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. |
| 88 | |
| 89 | For example : |
| 90 | |
| 91 | * On curie machine : |
| 92 | ccc_msub Job |
| 93 | with Job : |
| 94 | |
| 95 | |
| 96 | {{{ |
| 97 | #!/usr/bin/ksh |
| 98 | #MSUB -r XIOS # nom de la requete |
| 99 | #MSUB -o Script_Output_XIOS.000001 # nom du fichier de sortie |
| 100 | #MSUB -e Script_Output_XIOS.000001 # nom du fichier de sortie |
| 101 | #MSUB -eo |
| 102 | #MSUB -n 10 # reservation des processeurs pour le job |
| 103 | #MSUB -T 1800 # Limite temps (en secondes) |
| 104 | #MSUB -q standard |
| 105 | #MSUB -Q test |
| 106 | #MSUB -p gen2211 |
| 107 | |
| 108 | cd /ccc/scratch/cont003/dsm/p86caub/XIOS/bin |
| 109 | /usr/bin/time ccc_mprun ./test_client.exe |
| 110 | |
| 111 | }}} |
| 112 | |
| 113 | * Server mode |
| 114 | |
| 115 | {{{ |
| 116 | <variable id="using_server" type="boolean">true</variable> |
| 117 | }}} |
| 118 | |
| 119 | |
| 120 | The server executable is used. The asynchroneous writing mode is activated. The parallel writing mode (i.e one_file ) is available. |
| 121 | |
| 122 | For example : |
| 123 | |
| 124 | * On vargas machine : |
| 125 | llsubmit Job |
| 126 | |
| 127 | with Job : |
| 128 | |
| 129 | |
| 130 | {{{ |
| 131 | # Nom de la requete |
| 132 | # @ job_name = Jobname |
| 133 | # @ job_type = parallel |
| 134 | # Fichier de sortie standard |
| 135 | # @ output = Script_Output_000001 |
| 136 | # Fichier de sortie erreur (le meme) |
| 137 | # @ error = Script_Output_000001 |
| 138 | # Nombre de processus demandes |
| 139 | # @ total_tasks = 10 |
| 140 | # Temps CPU max. par processus MPI hh:mm:ss |
| 141 | # @ wall_clock_limit = 0:10:00 |
| 142 | # Memoire max. utilisee par processus |
| 143 | # @ data_limit = 3.2gb |
| 144 | # Memoire stack a etendre si besoin |
| 145 | ## @ stack_limit = 0.5gb,0.5gb |
| 146 | # Pas d OpenMP |
| 147 | # @ resources = ConsumableCpus(1) |
| 148 | # Fin de l entete |
| 149 | # @ queue |
| 150 | # @ class = debug |
| 151 | |
| 152 | cd /workgpfs/rech/ces/rces061/XIOS/bin |
| 153 | poe -pgmmodel MPMD -cmdfile ./run_file |
| 154 | |
| 155 | }}} |
| 156 | |
| 157 | with run_file is : |
| 158 | |
| 159 | |
| 160 | {{{ |
| 161 | ./test_client.exe |
| 162 | ./test_client.exe |
| 163 | ./test_client.exe |
| 164 | ./test_client.exe |
| 165 | ./test_client.exe |
| 166 | ./test_client.exe |
| 167 | ./test_client.exe |
| 168 | ./test_client.exe |
| 169 | ./xios_server.exe |
| 170 | ./xios_server.exe |
| 171 | }}} |
| 172 | |
| 173 | |
| 174 | This configuration will launch test_client on 8 processes and xios server on 2 processes. |
| 175 | |
| 176 | * Multiple_file mode |
| 177 | |
| 178 | {{{ |
| 179 | <file_definition type="multiple_file"> |
| 180 | }}} |
| 181 | |
| 182 | |
| 183 | Each client process (or server process) in attached mode (or server mode) writes its output files. |
| 184 | Mode available with both "netcdf4_par" and "netcdf4_seq". |
| 185 | |
| 186 | * One_file mode |
| 187 | |
| 188 | {{{ |
| 189 | <file_definition type="one_file"> |
| 190 | }}} |
| 191 | |
| 192 | |
| 193 | Parallel writing from each client process (or server process) in attached mode (or server mode) to one file. |
| 194 | Mode available only with "netcdf4_par". |