Frequently Asked Questions
My Python tasks running PyOPUS programs have multiple threads
On systems using OpenBLAS every process using BLAS (i.e. linear algebra functions) starts multiple threads when a linear algebra function is called for the first time. These threads are used for parallelizing linear algebra operations. Unfortunately this loads all of the system's processors with linear algebra tasks thus making your parallel algorithms in PyOPUS less efficient. To disable parallelization in OpenBLAS set the OPENBLAS_NUM_THREADS environmental variable to 1.
A PyOPUS task that opens a plot window has two threads from the moment plotting is initialized. Do not confuse this situation with the previous one.
Remote MPI tasks do not get the correct environment
The environmental variables should be set in the user's .bashrc file and exported. E.g.
# If PyOPUS modules are installed under /home/user/extra-python-modules/pyopus export PYTHONPATH=/home/user/extra-python-modules export PARALLEL_LOCAL_STORAGE=/localhome export PARALLEL_MIRRORED_STORAGE=/home/userAdd the statements at the beginning of the file because the first statement of the default .bashrc under Debian is a check that exits the .bashrc script if the shell is not interactive (a shell run remotely by MPI is not interactive). Look for something that looks like
# If not running interactively, don't do anything case $- in *i*) ;; *) return;; esacDo not add anything below these lines. If you do it will have no effect on non-interactive shells.
I use Octave for computing some function. The result is imported in PyOPUS using a
wrapper function and the wrapper function is optimized. When I run the optimization in parallel I don't get
the expected speedup. After more detailed inspection most worker tasks perform only one job for a long time
before they return the results.
This problem occurs when multiple Octave instances try to access a common file (e.g. history or octaverc in your shared home folder). Something seems to be wrong with file locking. To avoid this problem prevent Octave from reading these files (try options --no-history, --no-init-file, --no-site-file, --norc).
When I try to run a parallel task with Microsoft MPI and specify the /machinefile
command line option of mpiexec
the task won't start (it just freezes). When I ommit the /machinefile
option and use the /np
option to specify the number of processors everything works.
Probably the smpd
daemon is not running. It is distributed with Microsoft MPI and located in the same directory as mpiexec
. Start smpd
with
smpd -d
before starting any parallel runs with the /machinefile
command line option. When using GUI for starting parallel runs smpd
must be running at the time you start a parallel run because the GUI uses the /machinefile
command line option to specify the number of processors.
News :
- 2024-08-26
PyOPUS 0.11.2 released - 2023-08-23
PyOPUS 0.11.1 released - 2023-06-01
PyOPUS 0.11 released - 2022-04-21
PyOPUS 0.10 released - 2018-09-10
PyOPUS 0.9 released - 2015-07-10
PyOPUS 0.8 released - 2012-12-04
PyOPUS 0.7 released - 2012-03-12
Windows Quickstart - 2011-10-15
PyOPUS 0.6 released
Links :
EDA Laboratory
Faculty of Electrical Engineering
University of Ljubljana
Maintained by Árpád Bűrmen
Design by Minimalistic Design