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

1d_hydro example does't work #2736

Closed
arturas-venskus-flf opened this issue Jul 3, 2017 · 10 comments · Fixed by #2760
Closed

1d_hydro example does't work #2736

arturas-venskus-flf opened this issue Jul 3, 2017 · 10 comments · Fixed by #2760

Comments

@arturas-venskus-flf
Copy link

arturas-venskus-flf commented Jul 3, 2017

Hello,

1d_hydro example throws an exception:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<hpx::exception> >'
   what(): The calling thread does not own the mutex: HPX(lock_error)

OS: Ubuntu 16.04.1 LTS
GCC: 6.2.0
HPX: 1.0.0 compiled with -std=c++14
boost: 1.61
hwloc: 1.11.7

Best,
Arturas

@hkaiser
Copy link
Member

hkaiser commented Jul 3, 2017

@zbyerly Would you mind having a look what's wrong with your example?

@arturas-venskus-flf
Copy link
Author

HPX was built using default configuration with c++14 flag enabled. Prior to failure it prints:
nt = 10
nx = 5
n_predict = 10
terminate message ...

call stack:
hpx::lcos::local::mutex::unlock mutex.cpp:95
std::lock_guardhpx::lcos::local::mutex::~lock_guard std_mutex:168
timestep_size 1d_hydro_upwind.cpp:243
hpx_main 1d_hydro_upwind.cpp:676

Do you need additional information?

Best,
Arturas

@arturas-venskus-flf
Copy link
Author

program invoked in terminal: ./1d_hydro_upwind
No any parameters are specified explicitly or implicitly
PC has 8 cpu cores

@zbyerly
Copy link
Member

zbyerly commented Jul 3, 2017 via email

@zbyerly
Copy link
Member

zbyerly commented Jul 3, 2017

can you try using
-Ihpx.stacks.use_guard_pages=0
?

@arturas-venskus-flf
Copy link
Author

"./1d_hydro -Ihpx.stacks.use_guard_pages=0" terminates with the same error stating that calling thread does not own the mutex

@zbyerly
Copy link
Member

zbyerly commented Jul 4, 2017

Arturas,
I've been able to reproduce the error. I will get to work fixing it.
If you'd like to communicate more directly, please email me. My email is my github username @gmail.com

@hkaiser
Copy link
Member

hkaiser commented Jul 15, 2017

@arturas-venskus-flf Sorry it took me so long to respond to this, too many things are going on, currently. I can 100% reproduce the issue you reported but I'm not sure yet what's causing this. I'm certain that this is caused by a problem in the example itself, though. I'm inclined to remove the example as a possible resolution as it is most likely broken and does not demonstrate any facilities or ideas not shown elsewhere.

Is this example of particular value for you? Or did you just run across the problem and decided to report it?

@arturas-venskus-flf
Copy link
Author

@hkaiser Yes, this example is particularly interesting for my company because our main simulation tool does hydro simulations and we are evaluating hpx as a way to do distributed computations. So easiest and fastest way is just use provided hydro example and play with it. But we can continue without this example.

As a side note I would like to see much more similar examples that demonstrate how to solve particular pde's using hpx. For hpx novice user, especially for scientist/physicist who are not software engineers, initially is not enough to learn only basic concepts, facilities and ideas, but is very valuable to see examples showing how to compose those concepts to solve practical problems. One of the motivation to try hpx was existence of stencil and hydro codes examples showing that hpx targeting heavy number crunching problems. Off course good scalability properties are expected from such examples.

@hkaiser
Copy link
Member

hkaiser commented Jul 17, 2017

@arturas-venskus-flf understood. I still would like to remove this example as it is very old (and broken).

For better examples demonstrating how to orchestrate distributed parallelism with HPX I'd suggest you look at the 1d_stencil series of examples or the 2d stencil examples accompanying the tutorial slides here. The 2d stencil examples are especially useful as they demonstrate how to use channels to organize the communication fully overlapped with the computation.

Also, please feel free to ask questions either on IRC (#ste||ar on freenode) or the mailing list (hpx-users@cct.lsu.edu). We'd be more than happy to help with what you're trying to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants