|
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