[slurm-users] Generating OPA topology.conf

Ole Holm Nielsen Ole.H.Nielsen at fysik.dtu.dk
Thu Jun 14 01:17:25 MDT 2018

Hi Jeffrey,

On 06/13/2018 10:35 PM, Jeffrey Frey wrote:
> Intel's OPA doesn't include the old IB net discovery library/API; 
> instead, they have their own library to enumerate nodes, links, etc. 
>   I've started a rewrite of ye olde "ib2slurm" utility to make use of 
> Intel's new enumeration library.
> https://gitlab.com/jtfrey/opa2slurm

Thanks for sharing this tool!  We have an OPA fabric, and I'd like to 
try out your tool to generate topology.conf.  Unfortunately I'm unable 
to build opa2slurm because of missing headers and libraries:

1. The RPM package opa-libopamgt-devel is required for header files. 
This RPM may or may not be installed from the 
IntelOPA-Basic.RHEL74-x86_64. tar-ball.  I had a node 
where the OPA FM software was installed, including the required header 

2. After the CMake configuration the make fails:

$ make
Scanning dependencies of target opa2slurm
[ 20%] Building C object CMakeFiles/opa2slurm.dir/ptr_list.c.o
[ 40%] Building C object CMakeFiles/opa2slurm.dir/opa_host.c.o
[ 60%] Building C object CMakeFiles/opa2slurm.dir/opa_switch.c.o
[ 80%] Building C object CMakeFiles/opa2slurm.dir/opa2slurm.c.o
[100%] Linking C executable opa2slurm
CMakeFiles/opa2slurm.dir/opa2slurm.c.o: In function `opa_link_speed':
opa2slurm.c:(.text+0xe7): undefined reference to 
opa2slurm.c:(.text+0x1ae): undefined reference to `omgt_sa_free_records'
CMakeFiles/opa2slurm.dir/opa2slurm.c.o: In function `main':
opa2slurm.c:(.text+0x734): undefined reference to `omgt_open_port'
opa2slurm.c:(.text+0x791): undefined reference to `omgt_open_port_by_num'
opa2slurm.c:(.text+0x7e1): undefined reference to `omgt_open_port_by_guid'
opa2slurm.c:(.text+0x88a): undefined reference to `omgt_sa_get_node_records'
opa2slurm.c:(.text+0xa12): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0xa5d): undefined reference to `omgt_sa_get_node_records'
opa2slurm.c:(.text+0xbd8): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0xc19): undefined reference to `omgt_sa_get_link_records'
opa2slurm.c:(.text+0xee5): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x15e9): undefined reference to `omgt_status_totext'
opa2slurm.c:(.text+0x1623): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x163e): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x1659): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x169a): undefined reference to `omgt_close_port'
opa2slurm.c:(.text+0x16d6): undefined reference to `omgt_status_totext'
opa2slurm.c:(.text+0x1717): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x1732): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x174d): undefined reference to `omgt_sa_free_records'
opa2slurm.c:(.text+0x178e): undefined reference to `omgt_close_port'
collect2: error: ld returned 1 exit status
make[2]: *** [opa2slurm] Error 1
make[1]: *** [CMakeFiles/opa2slurm.dir/all] Error 2
make: *** [all] Error 2

Could you kindly add detailed building instructions including software 
prerequisites to your Gitlab page?

Thanks a lot,

More information about the slurm-users mailing list