|
8 | 8 | * reserved. |
9 | 9 | * Copyright (c) 2023 Jeffrey M. Squyres. All rights reserved. |
10 | 10 | * Copyright (c) 2024 NVIDIA Corporation. All rights reserved. |
| 11 | + * Copyright (c) 2025 SiPearl. All rights reserved. |
11 | 12 | * $COPYRIGHT$ |
12 | 13 | * |
13 | 14 | * Additional copyrights may follow |
@@ -381,6 +382,10 @@ static int ompi_mpi_instance_init_common (int argc, char **argv) |
381 | 382 | opal_finalize_domain_init (&ompi_instance_common_domain, "ompi_mpi_instance_init_common"); |
382 | 383 | opal_finalize_set_domain (&ompi_instance_common_domain); |
383 | 384 |
|
| 385 | + /* Append PML cleanup into the finalize of this domain ('ompi_instance_common_domain') |
| 386 | + before RTE init */ |
| 387 | + ompi_mpi_instance_append_finalize (ompi_mpi_instance_cleanup_pml); |
| 388 | + |
384 | 389 | if (OPAL_SUCCESS != (ret = opal_arch_set_fortran_logical_size(sizeof(ompi_fortran_logical_t)))) { |
385 | 390 | return ompi_instance_print_error ("ompi_mpi_init: opal_arch_set_fortran_logical_size failed", ret); |
386 | 391 | } |
@@ -638,8 +643,6 @@ static int ompi_mpi_instance_init_common (int argc, char **argv) |
638 | 643 | return ompi_instance_print_error ("ompi_group_init() failed", ret); |
639 | 644 | } |
640 | 645 |
|
641 | | - ompi_mpi_instance_append_finalize (ompi_mpi_instance_cleanup_pml); |
642 | | - |
643 | 646 | /* initialize communicator subsystem */ |
644 | 647 | if (OMPI_SUCCESS != (ret = ompi_comm_init ())) { |
645 | 648 | opal_mutex_unlock (&instance_lock); |
@@ -906,8 +909,6 @@ static int ompi_mpi_instance_finalize_common (void) |
906 | 909 | mca_mpool_base_tree_print (ompi_debug_show_mpi_alloc_mem_leaks); |
907 | 910 | } |
908 | 911 |
|
909 | | - opal_finalize_cleanup_domain (&ompi_instance_common_domain); |
910 | | - |
911 | 912 | if (NULL != ompi_mpi_main_thread) { |
912 | 913 | OBJ_RELEASE(ompi_mpi_main_thread); |
913 | 914 | ompi_mpi_main_thread = NULL; |
@@ -960,6 +961,9 @@ static int ompi_mpi_instance_finalize_common (void) |
960 | 961 | } |
961 | 962 | } |
962 | 963 |
|
| 964 | + /* Should be called in reverse order of init, i.e. after RTE finalize */ |
| 965 | + opal_finalize_cleanup_domain (&ompi_instance_common_domain); |
| 966 | + |
963 | 967 | ompi_proc_finalize(); |
964 | 968 |
|
965 | 969 | ompi_mpi_instance_release (); |
|
0 commit comments