sstsimulator / sst-macro

SST Macro Element Library
http://sst-simulator.org/
Other
34 stars 41 forks source link

help with xpressring topology tutorial #562

Closed mjagasi closed 4 years ago

mjagasi commented 4 years ago

Hello

I am using the SST/Macro to create a new topology and had a question about the interface between the nic and the topology hardware blocks. I'm using standalone sstmac command, with the 10.0 version.

I found the xpressring tutorial (under docs/developer/tutorials/programming/topology), and I’m making the topology from this way instead – however, when I compile (using sst++), I get the following error (my topology is called newTopology): error: Opening newTopology.so failed :newTopology.so: undefined symbol: vtable for sstmac::hw::newTopology

Any suggestions on how I can debug this? I have defined new topology and router functions. I’m wondering if it might be because I am using sst++ to compile while the rest of the build is using g++?

Thanks for your help.

jjwilke commented 4 years ago

The sst++ compiler wrapper just uses g++ underneath. You can build with SSTMAC_VERBOSE=1 set in the environment. This will show the exact commands being run by the wrapper to sanity check.

I checked the xpressring tutorial to make sure it still works. This seems to run fine on my system.

I would guess you're missing the destructor definition? Or something similar? You probably have a method declared in a header file or class declaration that is missing a definition.

mjagasi commented 4 years ago

Thank you very much – I had missed defining one function. After defining the function, the stand-alone works, and is running. Thanks for the clarification about the wrapper

mjagasi commented 4 years ago

One more question -- does the stand-alone topology method only work for structured_topology? I'm using cartesian topology and the connectedOutports function doesn't seem to be called.

jjwilke commented 4 years ago

It should work for any topology. Almost everything we use is structured, but generic topologies should be fine. Can you post your input file and command-line?

mjagasi commented 4 years ago

I am preparing the files to send -- I do notice that based on the link connections I made the connectedOutports may or may not be called. I don't understand why this is, since I thought the function would be called regardless. I am using the dragonfly as my starting point, and the cartesian_topology does work with .so version as you said. thanks

jjwilke commented 4 years ago

Is it possible to post the raw text of the files here? For security reasons, I'm not actually able to download tarballs on my work machine.

mjagasi commented 4 years ago

-- to run use the following command. I am using runallgather from multiapp example provided with the release

sstmac -f topo_slimfly.ini_60 --exe=./runallgather -p "node.app1.launch_cmd = aprun -n 60"

-- You can use this for your parameters.ini file. The previous file being the external topology library (saslimfly.so)

external_libs = [saslimfly.so]

include app_info.ini

topology { name = SaSlimfly geometry = [4, 4] group_connections = 4 concentration=4 }

switch.router.name = SaSlimflyRouter