← Back to team overview

yade-dev team mailing list archive

[Bug 1304878] [NEW] Openblas breaks openmp

 

Public bug reported:

Linking libopenblas as it is in ubuntu 12.04 disable multithread tasks (known issue with other applications to).
Yade -jN run the parallel tasks in a sequential way, and therefore it actually slows down for increasing N due to overheads, as noticed by [1].
The bug affects yade-daily and every build that links vs. openblas

There is a simple fix for compiled versions:
- uninstall openblas
- git clone git://github.com/xianyi/OpenBLAS
- edit Makefile.rule to enable openmp at line 44 in  (https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.rule#L43):
# If you're going to use this library with OpenMP, please comment it in.
# USE_OPENMP = 1 (the problem with debian/openblas is, obviously, that it is built with USE_OPENMP = 0)
- make PREFIX=/usr/lib
-  sudo make install
- run yade (no need to recompile)

This fix should also work for prebuilt yadedaily. The only problem is it
has openblas as a dependency, so basically the first step above needs to
also uninstall yadedaily (you could hack it somehow, of course...)

I'm not sure how to best fix yadedaily. I noticed openblas-omp packages available for Fedora and others, but not for debian.
One option is to replace libopenblas dependency by libatlas (it will also eliminate the problems with scipy). The PFV code will be suboptimal and non-parallel, but people seeking performance can always recompile with openblas.

What do you think Anton?

[1] https://answers.launchpad.net/yade/+question/246489

** Affects: yade
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/1304878

Title:
  Openblas breaks openmp

Status in Yet Another Dynamic Engine:
  New

Bug description:
  Linking libopenblas as it is in ubuntu 12.04 disable multithread tasks (known issue with other applications to).
  Yade -jN run the parallel tasks in a sequential way, and therefore it actually slows down for increasing N due to overheads, as noticed by [1].
  The bug affects yade-daily and every build that links vs. openblas

  There is a simple fix for compiled versions:
  - uninstall openblas
  - git clone git://github.com/xianyi/OpenBLAS
  - edit Makefile.rule to enable openmp at line 44 in  (https://github.com/xianyi/OpenBLAS/blob/develop/Makefile.rule#L43):
  # If you're going to use this library with OpenMP, please comment it in.
  # USE_OPENMP = 1 (the problem with debian/openblas is, obviously, that it is built with USE_OPENMP = 0)
  - make PREFIX=/usr/lib
  -  sudo make install
  - run yade (no need to recompile)

  This fix should also work for prebuilt yadedaily. The only problem is
  it has openblas as a dependency, so basically the first step above
  needs to also uninstall yadedaily (you could hack it somehow, of
  course...)

  I'm not sure how to best fix yadedaily. I noticed openblas-omp packages available for Fedora and others, but not for debian.
  One option is to replace libopenblas dependency by libatlas (it will also eliminate the problems with scipy). The PFV code will be suboptimal and non-parallel, but people seeking performance can always recompile with openblas.

  What do you think Anton?

  [1] https://answers.launchpad.net/yade/+question/246489

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/1304878/+subscriptions


Follow ups

References