Skip to content

Commit

Permalink
Integration Test of P2P MPI Inter-communication by using the launcher
Browse files Browse the repository at this point in the history
  • Loading branch information
ringleschavez committed Mar 8, 2022
1 parent 3f774b7 commit bac545e
Show file tree
Hide file tree
Showing 5 changed files with 645 additions and 0 deletions.
9 changes: 9 additions & 0 deletions launcher/tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,12 @@ e.g.

Using the environment variable defined above:
```python3 ${MULTISCALETVBNEST}/launcher/main.py --global-settings ${MULTISCALETVBNEST}/configuration_manager/global_settings.xml --action-plan ${MULTISCALETVBNEST}/launcher/tests/plans/mpi_intercommunicator_plan_on_cluster.xml --parameters ${MULTISCALETVBNEST}/launcher/tests/parameters/empty_parameters.xml```

### Client/Server Memory Buffer MPI Data Types and MPI Socket Inter-Communication
`python3 /home/user/TVB-NEST/launcher/main.py --action-plan /path/to/tests/plans/mpi_p2p_socket_plan_on_local.xml --parameters /path/to/tests/parameters/empty_parameters.xml`

e.g.
`python3 /home/user/TVB-NEST/launcher/main.py --action-plan /home/user/TVB-NEST/launcher/tests/plans/mpi_p2p_socket_plan_on_local.xml --parameters /home/user/TVB-NEST/launcher/tests/parameters/empty_parameters.xml`

Using the environment variable defined above:
```python3 ${MULTISCALETVBNEST}/launcher/main.py --global-settings ${MULTISCALETVBNEST}/configuration_manager/global_settings.xml --action-plan ${MULTISCALETVBNEST}/launcher/tests/plans/mpi_p2p_socket_plan_on_local.xml --parameters ${MULTISCALETVBNEST}/launcher/tests/parameters/empty_parameters.xml```
46 changes: 46 additions & 0 deletions launcher/tests/actions/mpi_p2p_socket_client.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" ?>
<settings>
<co_simulation_action>
<title>Simple Action</title>
<description>Simple Action</description>
<variables>
<var_000>
<var_name>__no_variable_name__</var_name>
<var_value>__no_variable_value__</var_value>
</var_000>
</variables>
<parameters>
<par_000>
<par_name>__no_parameter_name__</par_name>
<par_value>__no_parameter_value__</par_value>
</par_000>
</parameters>
<action>
<launcher>
<launcher_command>{CO_SIM_LAUNCHER}</launcher_command>
<launcher_arguments>
<argv_1_option>-np</argv_1_option>
<argv_1_value>3</argv_1_value>
</launcher_arguments>
</launcher>
<performer>
<performer_binary>python3</performer_binary>
<performer_arguments>
<argv_1_empty>{CO_SIM_EMPTY}</argv_1_empty>
</performer_arguments>
</performer>
<routine>
<routine_code>{CO_SIM_ROUTINES_DIR}/mpi_p2p_socket_tester.py</routine_code>
<routine_arguments>
<argv_1_results_dir>{CO_SIM_RESULTS_DIR}</argv_1_results_dir>
<argv_2_shm_dir>{CO_SIM_RESULTS_DIR}/shm</argv_2_shm_dir>
<argv_3_mmap_shm_filename>{CO_SIM_MMAP_SHM_FILENAME}</argv_3_mmap_shm_filename>
<argv_4_client>client</argv_4_client>
<argv_5_mpi_tag>{CO_SIM_BYTE_VALUE}</argv_5_mpi_tag>
<argv_6_ping_value>{CO_SIM_INTEGER_VALUE}</argv_6_ping_value>
<argv_7_pong_value>{CO_SIM_FLOAT_VALUE}</argv_7_pong_value>
</routine_arguments>
</routine>
</action>
</co_simulation_action>
</settings>
43 changes: 43 additions & 0 deletions launcher/tests/actions/mpi_p2p_socket_server.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" ?>
<settings>
<co_simulation_action>
<title>Simple Action</title>
<description>Simple Action</description>
<variables>
<var_000>
<var_name>__no_variable_name__</var_name>
<var_value>__no_variable_value__</var_value>
</var_000>
</variables>
<parameters>
<par_000>
<par_name>__no_parameter_name__</par_name>
<par_value>__no_parameter_value__</par_value>
</par_000>
</parameters>
<action>
<launcher>
<launcher_command>{CO_SIM_LAUNCHER}</launcher_command>
<launcher_arguments>
<argv_1_option>-np</argv_1_option>
<argv_1_value>3</argv_1_value>
</launcher_arguments>
</launcher>
<performer>
<performer_binary>python3</performer_binary>
<performer_arguments>
<argv_1_empty>{CO_SIM_EMPTY}</argv_1_empty>
</performer_arguments>
</performer>
<routine>
<routine_code>{CO_SIM_ROUTINES_DIR}/mpi_p2p_socket_tester.py</routine_code>
<routine_arguments>
<argv_1_results_dir>{CO_SIM_RESULTS_DIR}</argv_1_results_dir>
<argv_2_shm_dir>{CO_SIM_RESULTS_DIR}/shm</argv_2_shm_dir>
<argv_3_mmap_shm_filename>{CO_SIM_MMAP_SHM_FILENAME}</argv_3_mmap_shm_filename>
<argv_4_server>server</argv_4_server>
</routine_arguments>
</routine>
</action>
</co_simulation_action>
</settings>
76 changes: 76 additions & 0 deletions launcher/tests/plans/mpi_p2p_socket_plan_on_local.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8" ?>
<settings>
<co_simulation_action_plan>
<title>Simple Integration Test Plan</title>
<description>Simple Integration Test Plan</description>
<variables>
<var_000>
<var_name>CO_SIM_ACTIONS_DIR</var_name>
<var_value>${HOME}/TVB-NEST/launcher/tests/actions</var_value>
</var_000>
<var_001>
<var_name>CO_SIM_ROUTINES_DIR</var_name>
<var_value>${HOME}/TVB-NEST/launcher/tests/routines</var_value>
</var_001>
<var_002>
<var_name>CO_SIM_EXECUTION_ENVIRONMENT</var_name>
<var_value>Local</var_value>
</var_002>
</variables>
<parameters>
<par_000>
<par_name>CO_SIM_MMAP_SHM_FILENAME</par_name>
<par_value>mmap.shm</par_value>
</par_000>
<par_001>
<par_name>CO_SIM_BYTE_VALUE</par_name>
<par_value>BytesToBeSend</par_value>
</par_001>
<par_002>
<par_name>CO_SIM_INTEGER_VALUE</par_name>
<par_value>14159</par_value>
</par_002>
<par_003>
<par_name>CO_SIM_FLOAT_VALUE</par_name>
<par_value>2.71828</par_value>
</par_003>
</parameters>
<arrangement>
<arr_001>
<arr_duty>CO_SIM_ARRANGEMENT_DIR_CREATION</arr_duty>
<arr_what>{CO_SIM_RESULTS_DIR}/shm</arr_what>
</arr_001>
</arrangement>
<action_plan>
<action_000>
<action_type>CO_SIM_ACTION</action_type>
<action_xml>mmap_file_creator.xml</action_xml>
<action_launch_method>CO_SIM_SEQUENTIAL_ACTION</action_launch_method>
</action_000>
<action_002>
<!-- waiting until the preceding action finishes -->
<action_type>CO_SIM_EVENT</action_type>
<action_event>CO_SIM_WAIT_FOR_SEQUENTIAL_ACTIONS</action_event>
</action_002>

<!-- main plan action proceeding -->
<action_004>
<action_type>CO_SIM_ACTION</action_type>
<action_xml>mpi_p2p_socket_server.xml</action_xml>
<action_launch_method>CO_SIM_CONCURRENT_ACTION</action_launch_method>
</action_004>
<action_006>
<action_type>CO_SIM_ACTION</action_type>
<action_xml>mpi_p2p_socket_client.xml</action_xml>
<action_launch_method>CO_SIM_CONCURRENT_ACTION</action_launch_method>
</action_006>

<!-- epilogue -->
<action_010>
<!-- waiting until the preceding actions finishes -->
<action_type>CO_SIM_EVENT</action_type>
<action_event>CO_SIM_WAIT_FOR_CONCURRENT_ACTIONS</action_event>
</action_010>
</action_plan>
</co_simulation_action_plan>
</settings>
Loading

0 comments on commit bac545e

Please # to comment.