Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue with dumpWalls2XDMF #65

Closed
shafferpr opened this issue May 15, 2019 · 12 comments
Closed

issue with dumpWalls2XDMF #65

shafferpr opened this issue May 15, 2019 · 12 comments
Assignees

Comments

@shafferpr
Copy link

shafferpr commented May 15, 2019

I'm having a problem with the walls.py example from the tutorials: https://ymero.readthedocs.io/en/latest/user/tutorials.html#walls-py

When I attempt to run this script it crashes at the line:

u.dumpWalls2XDMF([wall], h = (0.5, 0.5, 0.5), filename = 'h5/wall')

with the error:

#31 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/pythonrun.c", line 978, in PyRun_FileExFlags [0x5651b23d2090] #30 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/pythonrun.c", line 1025, in run_mod [0x5651b23d1c93] #29 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/ceval.c", line 731, in PyEval_EvalCode [0x5651b23303fb] #28 | Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/ceval.c", line 4187, in PyEval_EvalCodeEx Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/ceval.c", line 4166, in _PyEval_EvalCodeWithName [0x5651b232f668] #27 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/ceval.c", line 3351, in _PyEval_EvalFrameDefault [0x5651b2380078] #26 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Python/ceval.c", line 4861, in call_function [0x5651b235c74d] #25 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Objects/methodobject.c", line 294, in _PyCFunction_FastCallKeywords [0x5651b230502f] #24 Source "/home/conda/feedstock_root/build_artifacts/python_1551342612670/work/Objects/methodobject.c", line 231, in _PyCFunction_FastCallDict [0x5651b22cc693] #23 Source "/home/patrick/code/ymero/src/extern/pybind11/include/pybind11/pybind11.h", line 627, in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) [0x7f2efa98cfa6]\n 624: // 6. Call the function. 625: try { 626: loader_life_support guard{}; > 627: result = func.impl(call); 628: } catch (reference_cast_error &) { 629: result = PYBIND11_TRY_NEXT_OVERLOAD; 630: }

I can run the script without the above line, but I'd really like to export the xdmf file for visualization purposes. Any idea what the problem is? I'm running on Ubuntu 18.04, with python 3.6, gcc 6.5, and cuda 10.1

@amlucas
Copy link
Collaborator

amlucas commented May 15, 2019

Hello, could you paste here the full stack trace? this should be dumped in the log files

@amlucas amlucas added the bug label May 15, 2019
@amlucas amlucas self-assigned this May 15, 2019
@shafferpr
Copy link
Author

Stack trace (most recent call last):
#29 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df293772, in _start
#28 Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe99db97b96, in __libc_start_main
Source "/build/glibc-OTsEL5/glibc-2.27/csu/../csu/libc-start.c", line 310, in __libc_start_main [0x7fe99db97b96]
#27 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1ac4bd, in main
#26 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df2e4a9d, in Py_Main
#25 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df2e0fa3, in PyRun_SimpleFileExFlags
#24 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df2e0da0, in PyRun_FileExFlags
#23 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df2e09a3, in run_mod
#22 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df2661eb, in PyEval_EvalCode
#21 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df265458, in PyEval_EvalCodeEx
#20 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df28da79, in _PyEval_EvalFrameDefault
#19 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df26a7cd, in call_function
#18 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df264c29, in _PyObject_FastCallKeywords
#17 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1dad7a, in _PyObject_FastCallDict
#16 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df26a9b6, in type_call
#15 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df23702a, in slot_tp_init
#14 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1da99d, in PyObject_Call
#13 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1dfa02, in _PyObject_Call_Prepend
#12 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1daf5e, in _PyObject_FastCallDict
#11 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df26503a, in _PyFunction_FastCallDict
#10 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df263c25, in _PyEval_EvalCodeWithName
#9 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df28e46f, in _PyEval_EvalFrameDefault
#8 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1da99d, in PyObject_Call
#7 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1da99d, in PyObject_Call
#6 Object "/home/patrick/miniconda3/bin/python3.6", at 0x5610df1dd9f5, in PyCFunction_Call
#5 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe997558e76, in pybind11::cpp_function::dispatcher(_object*, _object*, _object*)
Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/pybind11.h", line 620, in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) [0x7fe997558e76]
617: // 6. Call the function.
618: try {
619: loader_life_support guard{};
> 620: result = func.impl(call);
621: } catch (reference_cast_error &) {
622: result = PYBIND11_TRY_NEXT_OVERLOAD;
623: }
#4 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe9975da32e, in ZZN8pybind1112cpp_function10initializeIZNOS_6detail8initimpl7factoryIZ11exportYmeroRNS_6moduleEEUlSt5tupleIJiiiEES7_IJfffEEfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiSF_SF_bblE_PFNS2_9void_typeEvEFSt10unique_ptrI5YMeRoSt14default_deleteISL_EES8_S9_fSF_iiSF_SF_bblESI_E7executeINS_6class_ISL_JEEEJNS_19return_value_policyENS_3argESV_SV_NS_5arg_vESW_SW_SW_SW_SW_SW_SW_A3061_cEEEvRT_DpRKT0_EUlRNS2_16value_and_holderES8_S9_fSF_iiSF_SF_bblE_vJS15_S8_S9_fSF_iiSF_SF_bblEJNS_4nameENS_9is_methodENS_7siblingENS2_24is_new_style_constructorESU_SV_SV_SV_SW_SW_SW_SW_SW_SW_SW_SW_SX_EEEvOSY_PFT0_DpT1_EDpRKT2_ENUlRNS2_13function_callEE1_4_FUNES1M
| Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/pybind11.h", line 133, in _FUN
| 132: /* Dispatch code which converts function arguments and performs the actual function call /
| > 133: rec->impl = [](function_call &call) -> handle {
| 134: cast_in args_converter;
| Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/pybind11.h", line 155, in operator()
| 154: /
Perform the function call /
| > 155: handle result = cast_out::cast(
| 156: std::move(args_converter).template call<Return, Guard>(cap->f), policy, call.parent);
| Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/cast.h", line 1913, in
| 1911: template <typename Return, typename Guard, typename Func>
| 1912: enable_if_t<std::is_void::value, void_type> call(Func &&f) && {
| >1913: std::move(this).template call_impl(std::forward(f), indices{}, Guard{});
| 1914: return void_type();
| 1915: }
| Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/cast.h", line 1931, in
| 1929: template <typename Return, typename Func, size_t... Is, typename Guard>
| 1930: Return call_impl(Func &&f, index_sequence<Is...>, Guard &&) {
| >1931: return std::forward(f)(cast_op(std::move(std::get(argcasters)))...);
| 1932: }
| Source "/home/patrick/code/ymer/src/extern/pybind11/include/pybind11/detail/init.h", line 237, in operator()
| 235: #endif
| 236: (value_and_holder &v_h, Args... args) {
| > 237: construct(v_h, func(std::forward(args)...),
| 238: Py_TYPE(v_h.inst) != v_h.type->type);
| 239: }, is_new_style_constructor(), extra...);
| Source "/home/patrick/code/ymer/src/bindings/ymero.cpp", line 49, in operator()
| 47: if (comm == 0) return std::make_unique ( nranks, domain, dt, log, debuglvl,
| 48: checkpointEvery, checkpointFolder, checkpointMode,
| > 49: cudaMPI, noSplash);
| 50: else return std::make_unique (comm, nranks, domain, dt, log, debuglvl,
| 51: checkpointEvery, checkpointFolder, checkpointMode,
Source "/home/patrick/code/ymer/src/core/utils/make_unique.h", line 25, in ZZN8pybind1112cpp_function10initializeIZNOS_6detail8initimpl7factoryIZ11exportYmeroRNS_6moduleEEUlSt5tupleIJiiiEES7_IJfffEEfNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiiSF_SF_bblE_PFNS2_9void_typeEvEFSt10unique_ptrI5YMeRoSt14default_deleteISL_EES8_S9_fSF_iiSF_SF_bblESI_E7executeINS_6class_ISL_JEEEJNS_19return_value_policyENS_3argESV_SV_NS_5arg_vESW_SW_SW_SW_SW_SW_SW_A3061_cEEEvRT_DpRKT0_EUlRNS2_16value_and_holderES8_S9_fSF_iiSF_SF_bblE_vJS15_S8_S9_fSF_iiSF_SF_bblEJNS_4nameENS_9is_methodENS_7siblingENS2_24is_new_style_constructorESU_SV_SV_SV_SW_SW_SW_SW_SW_SW_SW_SW_SX_EEEvOSY_PFT0_DpT1_EDpRKT2_ENUlRNS2_13function_callEE1_4_FUNES1M [0x7fe9975da32e]
22: template<class T, class... Args>
23: typename _Unique_if::_Single_object
24: make_unique(Args&&... args) {
> 25: return unique_ptr(new T(std::forward(args)...));
26: }
27:
28: template
#3 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe9977bab48, in YMeRo::YMeRo(std::tuple<int, int, int>, std::tuple<float, float, float>, float, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, CheckpointIdAdvanceMode, bool, bool)
Source "/home/patrick/code/ymer/src/core/ymero.cpp", line 141, in YMeRo::YMeRo(std::tuple<int, int, int>, std::tuple<float, float, float>, float, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, CheckpointIdAdvanceMode, bool, bool) [0x7fe9977bab48]
138: initializedMpi = true;
139:
140: init( make_int3(nranks3D), make_float3(globalDomainSize), dt, logFileName, verbosity,
> 141: checkpointEvery, checkpointFolder, checkpointMode, gpuAwareMPI);
142: }
143:
144: YMeRo::YMeRo(long commAdress, PyTypes::int3 nranks3D, PyTypes::float3 globalDomainSize, float dt,
#2 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe9977ba8e2, in YMeRo::init(int3, float3, float, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, CheckpointIdAdvanceMode, bool)
Source "/home/patrick/code/ymer/src/core/ymero.cpp", line 74, in YMeRo::init(int3, float3, float, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, int, int, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, CheckpointIdAdvanceMode, bool) [0x7fe9977ba8e2]
72: if (nranks3D.x * nranks3D.y * nranks3D.z == nranks) noPostprocess = true;
73: else if (nranks3D.x * nranks3D.y * nranks3D.z * 2 == nranks) noPostprocess = false;
> 74: else die("Asked for %d x %d x %d processes, but provided %d", nranks3D.x, nranks3D.y, nranks3D.z, nranks);
75:
76: if (rank == 0) sayHello();
#1 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe9977c0651, in void Logger::_die<char const
, int, char const
, int, int, int, int>(char const*, int, char const*, int, int, int, int)
Source "/home/patrick/code/ymer/src/core/logger.h", line 203, in void Logger::_die<char const*, int, char const*, int, int, int, int>(char const*, int, char const*, int, int, int, int) [0x7fe9977c0651]
201: // print stacktrace
202: std::ostringstream strace;
> 203: pretty_stacktrace(strace);
204: fwrite(strace.str().c_str(), sizeof(char), strace.str().size(), fout);
205:
206: fflush(fout);
#0 Object "/home/patrick/miniconda3/lib/python3.6/site-packages/YMeRo-0.12.3-py3.6-linux-x86_64.egg/libymero.cpython-36m-x86_64-linux-gnu.so", at 0x7fe99779eae8, in pretty_stacktrace(std::ostream&)
Source "/home/patrick/code/ymer/src/core/utils/stacktrace_explicit.cpp", line 11, in pretty_stacktrace(std::ostream&) [0x7fe99779eae8]
8: using namespace backward;
9:
10: StackTrace st;
> 11: st.load_here(100);
12: Printer p;
13: p.object = true;
14: p.color_mode = ColorMode::automatic;

@amlucas amlucas removed the bug label May 15, 2019
@amlucas
Copy link
Collaborator

amlucas commented May 15, 2019

It looks like you did not provide the required number of ranks; this setup is 1x1x1 subdomains and needs postprocess rank so you need to launch a 2 ranks simulation (2 ranks per gpu).
Please refer to https://ymero.readthedocs.io/en/latest/user/user.html#running-the-simulation

@shafferpr
Copy link
Author

How do I specify the number of ranks. Is it with the -np flag for mpirun? when I run

mpirun -np 2 python3 walls.py
it runs with 4 ranks, and when I run
mpirun -np 1 python3 walls.py

it runs with 1 rank. I have one gpu so I'd like to run 2 ranks

@amlucas
Copy link
Collaborator

amlucas commented May 15, 2019

you should refer to your mpi documentation; but I would expect that
mpirun -np 2 python3 walls.py
launches only 2 ranks, maybe check on a simpler example like
mpirun -np 2 echo "hello world"

@shafferpr
Copy link
Author

I was able to run it with two ranks, but it still crashes at the same line, and know my log files look like (log_00000.log):

08:05:28:932 Rank 0000 at /home/patrick/code/ymero/src/core/logger.h:249 Compiled with maximum debug level 10
08:05:28:932 Rank 0000 at /home/patrick/code/ymero/src/core/logger.h:250 Debug level requested 3, set to 3
08:05:28:932 Rank 0000 WARNING at /home/patrick/code/ymero/src/core/ymero.cpp:79 No postprocess will be started now, use this mode for debugging. All the joint plugins will be turned off too.
08:05:28:932 Rank 0000 INFO at /home/patrick/code/ymero/src/core/ymero.cpp:45 Detected 1 ranks per node, my intra-node ID will be 0
08:05:28:941 Rank 0000 INFO at /home/patrick/code/ymero/src/core/ymero.cpp:52 Found 1 GPUs per node, will use GPU 0
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:110 Simulation initialized, subdomain size is [16.000000 16.000000 16.000000], subdomain starts at [0.000000 0.000000 0.000000]
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__positions'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__velocities'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__forces'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__positions'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__velocities'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__forces'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel 'old_positions'
08:05:29:049 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel 'old_positions'
08:05:29:051 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:247 Registered particle vector 'pv', 1202 particles
08:05:29:052 Rank 0000 INFO at /home/patrick/code/ymero/src/core/walls/simple_stationary_wall.cu:250 Setting up wall cylinder
08:05:29:052 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:267 Registered wall 'cylinder'
08:05:29:052 Rank 0000 INFO at /home/patrick/code/ymero/src/core/ymero.cpp:366 Generating frozen particles for walls
08:05:29:052 Rank 0000 INFO at /home/patrick/code/ymero/src/core/ymero.cpp:380 Working with wall 'cylinder'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:110 Simulation initialized, subdomain size is [16.000000 16.000000 16.000000], subdomain starts at [0.000000 0.000000 0.000000]
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__positions'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__velocities'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__forces'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__positions'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__velocities'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel '__forces'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel 'old_positions'
08:05:29:061 Rank 0000 INFO at /home/patrick/code/ymero/src/core/pvs/data_manager.h:80 Creating new channel 'old_positions'
08:05:29:063 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:247 Registered particle vector 'wall', 1245 particles
08:05:29:063 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:1107 Simulation initiated
08:05:29:063 Rank 0000 INFO at /home/patrick/code/ymero/src/core/simulation.cpp:487 Preparing cell-lists
08:05:29:063 Rank 0000 INFO at /home/patrick/code/ymero

and (log_00001.log):

23:20:49:591 Rank 0001 at /home/patrick/code/ymero/src/core/logger.h:249 Compiled with maximum debug level 10
23:20:49:591 Rank 0001 at /home/patrick/code/ymero/src/core/logger.h:250 Debug level requested 3, set to 3
23:20:49:591 Rank 0001 INFO at /home/patrick/code/ymero/src/core/ymero.cpp:91 Program started, splitting communicator
23:20:49:591 Rank 0001 INFO at /home/patrick/code/ymero/src/core/postproc.cpp:15 Postprocessing initialized
23:20:49:592 Rank 0001 INFO at /home/patrick/code/ymero/src/core/postproc.cpp:22 New plugin registered: stats
23:20:49:592 Rank 0001 INFO at /home/patrick/code/ymero/src/core/postproc.cpp:22 New plugin registered: part_dump
23:20:49:592 Rank 0001 INFO at /home/patrick/code/ymero/src/core/postproc.cpp:22 New plugin registered: part_dump_wall

@dimaleks
Copy link
Contributor

Hey @shafferpr! We'd need just a little more information from you.

  • Please copy here the exact command you execute to run the example. From the log file I see that you start just one rank instead of two, and however that should not cause the crash you're experiencing, it may help us understand what's going on.
  • Could you also increase the debug level to 10 (line 11 of the script, change debug_lvl=3 to debug_lvl=10) and run once again? Then paste the content of the log_00000.log file, better to pastebin.com as there will be quite some text.
  • If there is any output from YMeRo on screen, paste it here too.

Since you can run without the wall dump, it may possibly be an issue with the linking to hdf5 library, or incompatible version. I think we can figure this out pretty quick.

Dmitry

@shafferpr
Copy link
Author

shafferpr commented May 15, 2019

Hi @dimaleks, thanks for your help, I changed the debug level and ran the command:
mpirun -np 2 python3 walls.py

The end of the log_00000.log file is here (sorry I can't post the whole thing here, it's an 11 MB file):

https://pastebin.com/G4NfkE2s

The output I get directly from YMeRo is here:

https://pastebin.com/EHDywuJ1

@amlucas
Copy link
Collaborator

amlucas commented May 16, 2019

I pushed a possible fix, can you try with the latest commit on master?
If this does not fix it, please make sure that you link to a parallel hdf5 version.
Edit: please also try to run the script with 2 ranks without the sdf dump; if it also crashes, I suspect that you link with the wrong hdf5

@shafferpr
Copy link
Author

shafferpr commented May 16, 2019

Thanks Lucas,
I installed the latest commit and the script completes if I run without the sdf dump, but still fails when I run with the sdf dump, here's the stack trace:
https://pastebin.com/ibQhJhPn

I suspect I'm linking the wrong hdf5 as well but I can't figure out how to link it properly. In ccmake, I had to configure the variable "HDF5_C_LIBRARY_hdf5" by hand.

 HDF5_C_LIBRARY_hdf5              /usr/lib/x86_64-linux-gnu/hdf5/openmpi/libhdf5.so                                                                                            
 HDF5_C_LIBRARY_m                 /usr/lib/x86_64-linux-gnu/libm.so                                                                                                            
 HDF5_C_LIBRARY_pthread           /usr/lib/x86_64-linux-gnu/libpthread.so                                                                                                      
 HDF5_C_LIBRARY_rt                /usr/lib/x86_64-linux-gnu/librt.so                                                                                                           
 HDF5_C_LIBRARY_sz                /usr/lib/x86_64-linux-gnu/libsz.so                                                                                                           
 HDF5_C_LIBRARY_z                 /usr/lib/x86_64-linux-gnu/libz.so                                                                                                            
 LIBBFD_BFD_LIBRARY               /usr/lib/x86_64-linux-gnu/libbfd.so

When I configure with these variables, I get the following warning from cmake:

CMake Warning at /usr/share/cmake-3.10/Modules/FindHDF5.cmake:685 (message):
   HDF5 found for language C is parallel but previously found language is not
   parallel.

This seems relevant to me but I can't trace this error message very far. Is it possible that I need to confirm that my python install also has parallel hdf5 libraries installed?

@shafferpr
Copy link
Author

shafferpr commented May 16, 2019

Hey guys,

I think I have a solution here. I was using a conda distribution of python, which does not come with parallel hdf5 by default, so I had to install it with:

conda install -c clawpack hdf5-parallel

Once I installed that, all the cmake defaults worked and I didn't have to change any of those configuration variables. Thanks for your help!

@amlucas
Copy link
Collaborator

amlucas commented May 16, 2019

Great!
I consider that this closed the issue.

@amlucas amlucas closed this as completed May 16, 2019
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

No branches or pull requests

3 participants