Skip to content

Conversation

@ggouaillardet
Copy link
Contributor

No description provided.

Ralph Castain and others added 2 commits December 20, 2015 03:05
…x API.

Update the configure logic for the new pmix120 component
@lanl-ompi
Copy link
Contributor

Test FAILed.

@ggouaillardet
Copy link
Contributor Author

@rhc54
i also applied the patch below, but i still get errors at run time when compiled with --disable-dlopen
(and i did not try yet without it)

i tried to disable one module, but i still get runtime errors

$ OMPI_MCA_pmix=^pmix112 OMPI_MCA_pmix_base_verbose=19 ./hello_c 2>&1 | grep pmix1
[xxx:07332] mca: base: components_register: found loaded component pmix120
[xxx:07332] mca: base: components_register: component pmix120 has no register or open function
[xxx:07332] mca: base: components_open: found loaded component pmix120
[xxx:07332] mca: base: components_open: component pmix120 open function successful
[xxx:07332] mca:base:select:( pmix) Querying component [pmix120]
[xxx:07332] mca:base:select:( pmix) Query of component [pmix120] set priority to 0
[xxx:07332] mca:base:select:( pmix) Selected component [pmix120]
[xxx:07334] mca: base: components_register: found loaded component pmix112
[xxx:07334] mca: base: components_register: component pmix112 has no register or open function
[xxx:07334] mca: base: components_register: found loaded component pmix120
[xxx:07334] mca: base: components_register: component pmix120 has no register or open function
[xxx:07334] mca: base: components_open: found loaded component pmix112
[xxx:07334] mca: base: components_open: component pmix112 open function successful
[xxx:07334] mca: base: components_open: found loaded component pmix120
[xxx:07334] mca: base: components_open: component pmix120 open function successful
[xxx:07334] mca:base:select:( pmix) Querying component [pmix112]
[xxx:07334] mca:base:select:( pmix) Query of component [pmix112] set priority to 5
[xxx:07334] mca:base:select:( pmix) Querying component [pmix120]
[xxx:07334] mca:base:select:( pmix) Query of component [pmix120] set priority to 0
[xxx:07334] mca:base:select:( pmix) Selected component [pmix112]
[xxx:07334] mca: base: close: component pmix120 closed
[xxx:07334] mca: base: close: unloading component pmix120
diff --git a/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h b/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
index 195d143..0931fc9 100644
--- a/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
+++ b/opal/mca/pmix/pmix112/pmix/include/pmix/rename.h
@@ -288,6 +288,60 @@ BEGIN_C_DECLS
 #define pmix_usock_set_blocking                 PMIX_NAME(usock_set_blocking)
 #define pmix_usock_set_nonblocking              PMIX_NAME(usock_set_nonblocking)

+/* misc stuff */
+#define pmix_add_errhandler PMIX_NAME(pmix_add_errhandler)
+#define pmix_bfrop_copy_topo PMIX_NAME(pmix_bfrop_copy_topo)
+#define pmix_bfrop_pack_bool PMIX_NAME(pmix_bfrop_pack_bool)
+#define pmix_bfrop_pack_topo PMIX_NAME(pmix_bfrop_pack_topo)
+#define pmix_bfrop_print_bool PMIX_NAME(pmix_bfrop_print_bool)
+#define pmix_bfrop_print_topo PMIX_NAME(pmix_bfrop_print_topo)
+#define pmix_bfrop_unpack_bool PMIX_NAME(pmix_bfrop_unpack_bool)
+#define pmix_bfrop_unpack_topo PMIX_NAME(pmix_bfrop_unpack_topo)
+#define pmix_client_deregister_errhandler PMIX_NAME(pmix_client_deregister_errhandler)
+#define pmix_client_notify_error PMIX_NAME(pmix_client_notify_error)
+#define pmix_client_register_errhandler PMIX_NAME(pmix_client_register_errhandler)
+#define pmix_get_errorgroup PMIX_NAME(pmix_get_errorgroup)
+#define pmix_globals_finalize PMIX_NAME(pmix_globals_finalize)
+#define pmix_globals_init PMIX_NAME(pmix_globals_init)
+#define pmix_lookup_errhandler PMIX_NAME(pmix_lookup_errhandler)
+#define pmix_pack_proc_map PMIX_NAME(pmix_pack_proc_map)
+#define pmix_pending_nspace_requests PMIX_NAME(pmix_pending_nspace_requests)
+#define pmix_pending_resolve PMIX_NAME(pmix_pending_resolve)
+#define pmix_regex_parse_nodes PMIX_NAME(pmix_regex_parse_nodes)
+#define pmix_regex_parse_procs PMIX_NAME(pmix_regex_parse_procs)
+#define pmix_remove_errhandler PMIX_NAME(pmix_remove_errhandler)
+#define pmix_server_abort PMIX_NAME(pmix_server_abort)
+#define pmix_server_commit PMIX_NAME(pmix_server_commit)
+#define pmix_server_connect PMIX_NAME(pmix_server_connect)
+#define pmix_server_deregister_errhandler PMIX_NAME(pmix_server_deregister_errhandler)
+#define pmix_server_deregister_events PMIX_NAME(pmix_server_deregister_events)
+#define pmix_server_fence PMIX_NAME(pmix_server_fence)
+#define pmix_server_get PMIX_NAME(pmix_server_get)
+#define pmix_server_lookup PMIX_NAME(pmix_server_lookup)
+#define pmix_server_notify_error PMIX_NAME(pmix_server_notify_error)
+#define pmix_server_notify_error_client PMIX_NAME(pmix_server_notify_error_client)
+#define pmix_server_publish PMIX_NAME(pmix_server_publish)
+#define pmix_server_register_errhandler PMIX_NAME(pmix_server_register_errhandler)
+#define pmix_server_register_events PMIX_NAME(pmix_server_register_events)
+#define pmix_server_spawn PMIX_NAME(pmix_server_spawn)
+#define pmix_server_unpublish PMIX_NAME(pmix_server_unpublish)
+#define pmix_start_listening PMIX_NAME(pmix_start_listening)
+#define pmix_stop_listening PMIX_NAME(pmix_stop_listening)
+#define pmix_value_cmp PMIX_NAME(pmix_value_cmp)
+
+#define PMIx_generate_ppn PMIX_NAME(PMIx_generate_ppn)
+#define PMIx_generate_regex PMIX_NAME(PMIx_generate_regex)
+#define PMIx_Notify_error PMIX_NAME(PMIx_Notify_error)
+#define PMIx_server_deregister_client PMIX_NAME(PMIx_server_deregister_client)
+#define PMIx_server_deregister_nspace PMIX_NAME(PMIx_server_deregister_nspace)
+#define PMIx_server_dmodex_request PMIX_NAME(PMIx_server_dmodex_request)
+#define PMIx_server_finalize PMIX_NAME(PMIx_server_finalize)
+#define PMIx_server_init PMIX_NAME(PMIx_server_init)
+#define PMIx_server_register_client PMIX_NAME(PMIx_server_register_client)
+#define PMIx_server_register_nspace PMIX_NAME(PMIx_server_register_nspace)
+#define PMIx_server_setup_fork PMIX_NAME(PMIx_server_setup_fork)
+#define PMIx_Store_internal PMIX_NAME(PMIx_Store_internal) 
+

 #endif /* PMIX_SYM_TRANSFORM */

@rhc54
Copy link
Contributor

rhc54 commented Dec 21, 2015

@ggouaillardet I don't think that's the right solution. We shouldn't be installing a libpmix at all when building embedded versions - the component should be simply absorbing it into its own mca_pmix_pmix112.so (and the same for pmix120). Could you please correct this?

@hppritcha
Copy link
Member

I do not think any mca*.so libs are created if one configured with disable-open set. Is the objective to able to support multiple pmix components with selection done at runtime?

@ggouaillardet
Copy link
Contributor Author

@hppritch you are correct, no mca*.so libs are created if configure'd with --disable-dlopen

@rhc54, currently, if configure'd without --disable-dlopen, mca_pmix_pmix112.so (and only this lib) is linked with libpmix.so

$ ldd mca_pmix_pmix112.so 
    linux-vdso.so.1 =>  (0x00007ffcfe7ad000)
    libpmix.so.2 => /home/gilles/local/ompi-master/lib/libpmix.so.2 (0x00007fe8b2d93000)
    libmunge.so.2 => /lib64/libmunge.so.2 (0x00007fe8b2b70000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fe8b2968000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fe8b2666000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007fe8b2462000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fe8b2246000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fe8b1e85000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fe8b3211000)

if i understand you correctly, we should only generate an internal libpmix.a static library, and mca_pmix_pmix112.so should link to it.
do i get it right ?

if configure'd with --disable-dlopen, then libopen-pal.so is currentlly linked with two flavors of libpmix:

$ ldd libopen-pal.so
    linux-vdso.so.1 =>  (0x00007ffdeddab000)
    librdmacm.so.1 => /lib64/librdmacm.so.1 (0x00007fad1b88e000)
    libosmcomp.so.3 => /lib64/libosmcomp.so.3 (0x00007fad1b67e000)
    libibverbs.so.1 => /lib64/libibverbs.so.1 (0x00007fad1b467000)
    libnuma.so.1 => /lib64/libnuma.so.1 (0x00007fad1b25b000)
    libpciaccess.so.0 => /lib64/libpciaccess.so.0 (0x00007fad1b050000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fad1ae4c000)
    libpmix.so.0 => /home/gilles/local/ompi-master-pmix120/lib/libpmix.so.0 (0x00007fad1abdf000)
    libpmix112.so.2 => /home/gilles/local/ompi-master-pmix120/lib/libpmix112.so.2 (0x00007fad1a978000)
    libnl-3.so.200 => /lib64/libnl-3.so.200 (0x00007fad1a75c000)
    libnl-route-3.so.200 => /lib64/libnl-route-3.so.200 (0x00007fad1a50d000)
    libmunge.so.2 => /lib64/libmunge.so.2 (0x00007fad1a302000)
    librt.so.1 => /lib64/librt.so.1 (0x00007fad1a0fa000)
    libm.so.6 => /lib64/libm.so.6 (0x00007fad19df8000)
    libutil.so.1 => /lib64/libutil.so.1 (0x00007fad19bf4000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fad199d8000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fad19617000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fad1bf3c000)
    libibumad.so.3 => /lib64/libibumad.so.3 (0x00007fad1940d000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fad191f7000)
    libnl.so.1 => /lib64/libnl.so.1 (0x00007fad18fa4000)

bottom line, i am fine trying to generate static libpmix so they are slurped into mca_pmix_*.so.
that being said, i do not see how that can solve the runtime errors we are experiencing when two or more versions of libpmix are available.

can you please clarify how i should move forward ?

@rhc54
Copy link
Contributor

rhc54 commented Dec 22, 2015

I don't believe you need do anything more - my PR contains all the required fixes, and is passing all tests

@hppritcha
Copy link
Member

can PR be closed now? seems @rhc54 has things fixed up in PR #1243

@ggouaillardet
Copy link
Contributor Author

yes, now closing this pr

jsquyres added a commit to jsquyres/ompi that referenced this pull request Aug 23, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants