Giter Site home page Giter Site logo

cns-oist / steps Goto Github PK

View Code? Open in Web Editor NEW
36.0 36.0 10.0 40.65 MB

Public release repository for STochastic Engine of Pathway Simulation (STEPS)

Home Page: http://steps.sourceforge.net

License: Other

CMake 1.24% Python 32.12% C++ 55.74% Nix 0.01% Shell 0.09% MATLAB 0.31% C 0.01% Cython 10.46% GLSL 0.02%

steps's Issues

No module after installing

Dear contributors:
Similiar problems occured after I upgraded steps3.5.0 to steps5.0.1. Only this time more modules were missing compared to the closed problem #38.
As I can see, the STEPS is successfully installed as the result shows:
STochastic Engine for Pathway Simulation
Version: 5.0.1
License: GPL3.0
Website: steps.sourceforge.net
CXX Binding: Cython

But when I try to run the diffusion example script, errors occurs:
prob
I would be really appreciate if you can tell me the prossible causes of these.

Errors in installing STEPS 4 on Ubuntu

Hello, I am trying to install STEP 4, and I meet some errors.
I try to fix the errror: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! so that I add a line in every .pyx file with command sed '2i# cython:language_level=3' -i *.pyx, and I meet this error:

image

It seems all files named '*.pyx' are written with standard of py 2, so that it will meet some errors when compiling with cython -3
. So in this case I must install mpi4py on both python 2 and 3, and execute command sed -i 's/language_level=3/language_level=2/' *.pyx
I want to know if STEPS use both python 2 and 3 to compile? and in future will STEP's code migrate to 3?

CMake does not halt when SWIG is missing

Hi STEPS developers,

I just noticed a minor bug on your build system: even though SWIG is marked as required, CMake still goes ahead and generates all the makefiles:

<snip>
-- Looking for strip utility
-- Looking for strip utility - found
-- Could NOT find SWIG (missing:  SWIG_EXECUTABLE SWIG_DIR) 
-- Found PythonInterp: /usr/bin/python (found version "2.7.13") 
-- Found PythonInterpLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so  
-- Found MPI_C: /usr/lib/x86_64-linux-gnu/openmpi/lib/libmpi.so  
<snip>
-- Build files have been written to: /home/marco/Development/phd/STEPS_Release/output

The normal CMake behaviour is to bomb out when a required dependency is missing. I am investigating as to why this is not working correctly, your CMake files look fine at first glance.

lacking module after setting up

Traceback (most recent call last):
File ../diffusion.py", line 2, in
import steps.interface
ModuleNotFoundError: No module named 'steps.interface'

After following the description of importing steps, there are several modules still can't be used while I was trying to reproduce diffusion script from STEPS_Examples(API).

A Roadmap Question about the Potential Enhancement for STEPS for the GPU-based Parallelism

In your "STEPS 4.0: Fast and memory-effcient molecular simulations of neurons at the nanoscale" 2022 paper, at the "Potential enhancements for STEPS 4" section, you mentioned that:

"With the importance of GPU-based fat compute nodes in modern HPC clusters, such features will play important roles when STEPS 4 is transitioned to other parallelism schemes."

So I wanted to ask, what is your estimated roadmap for this feature? I am interested in a ballpark estimation answer such as 2025, 2026 or 2027.

Thanks in advance.

Problem installing on Ubuntu

Hi,

I am trying to install STEPS on Ubuntu-16.04-Cuda.

after using cmake -DBLAS_LIBRARIES=/home/cloud-user/amber/miniconda/lib/ -DLAPACK_LIBRARIES=/home/cloud-user/amber/miniconda/lib/ ..

I get the following, I was wondering if you know where the issue is.

-- Generating debug symbols: -ggdb3
-- Looking for strip utility
-- Looking for strip utility - found
-- A library with BLAS API found.
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS)
-- PYTHON packages being installed to /usr/lib/python2.7/dist-packages. To change use -DPYTHON_INSTALL_PREFIX=


-- Configuring done
WARNING: Target "cysteps" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "cysteps" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "libsteps" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "libsteps" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_membership" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_petscsystem" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_tetmesh" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_point3d" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_checkid" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_rng" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_sample" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_bbox" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_small_binomial" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
WARNING: Target "test_bdsystem" requests linking to directory "/home/cloud-user/amber/miniconda/lib/". Targets may link only to libraries. CMake is dropping the item.
-- Generating done
-- Build files have been written to: /home/cloud-user/STEPS/build

Thank you.

Problem with setting up

After pulling up the docker file, user can't successfully proceed with "make"

/usr/include/c++/12/bits/hashtable_policy.h:1277:25: error: static assertion failed: hash function must be invocable with an argument of key type
 1277 |           static_assert(__is_invocable<const _Hash&, const _Kt&>{},
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/12/bits/hashtable_policy.h:1277:25: note: ‘std::__is_invocable<const steps::util::impl::hash_ref<std::hash<double> >&, const count_copies<float>&>()’ evaluates to false
/usr/include/c++/12/bits/hashtable_policy.h:1279:27: error: no match for call to ‘(const steps::util::impl::hash_ref<std::hash<double> >) (const count_copies<float>&)’
 1279 |           return _M_hash()(__k);
      |                  ~~~~~~~~~^~~~~
/STEPS/src/steps/util/collections.hpp:53:38: note: candidate: ‘template<class V> size_t steps::util::impl::hash_ref<H>::operator()(std::reference_wrapper<_Functor>) const [with H = std::hash<double>]’
   53 |         template <typename V> size_t operator()(std::reference_wrapper<V> v) const { return hasher(v.get()); }
      |                                      ^~~~~~~~
/STEPS/src/steps/util/collections.hpp:53:38: note:   template argument deduction/substitution failed:
/usr/include/c++/12/bits/hashtable_policy.h:1279:27: note:   ‘count_copies<float>’ is not derived from ‘std::reference_wrapper<_Tp>’
 1279 |           return _M_hash()(__k);
      |                  ~~~~~~~~~^~~~~
make[2]: *** [test/unit/cpp/CMakeFiles/test_membership.dir/build.make:76: test/unit/cpp/CMakeFiles/test_membership.dir/test_membership.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:512: test/unit/cpp/CMakeFiles/test_membership.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

PlotDisplay not showing up

Hello,
I wanted to try out the STEPS live visualizations, but I have run into an issue with the PlotDisplay window. Whenever I start the API_2 example script ip3r_sim.py, all the SimDisplay windows show up and work just fine. But a window for plots has never popped up and I don't see any errors for that. Would you maybe share your configuration that got it running?

I am using Ubuntu 22.04.3. I tried to follow the instructions from the Dockerfile in the STEPS_Docker repo and installed the STEPS 5.0.0 beta. All the other example scripts from API_2 work fine. I then used pip to install PyQt5 5.15.10 and pyqtgraph 0.13.3.
When I first ran the script ip3r_sim.py, I only got the SimControl and some empty windows and this console output:

Model checking:
No errors were found
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[2024-01-10 13:41:05,373][INFO][/var/src/STEPS/src/steps/tetexact/tetexact.cpp:123][virtual void steps::tetexact::Tetexact::checkpoint(const string&)]: Checkpoint to  _temp_sim0.cp ... 
[2024-01-10 13:41:05,377][INFO][/var/src/STEPS/src/steps/tetexact/tetexact.cpp:215][virtual void steps::tetexact::Tetexact::checkpoint(const string&)]: complete.
 
/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py:244: RuntimeWarning: 
Traceback (most recent call last):
  File "/home/maxim/STEPS_Example/python_scripts/API_2/visual/ip3r_sim.py", line 160, in <module>
    sc.run()
  File "/opt/conda/lib/python3.9/site-packages/steps/API_2/visual.py", line 152, in run
    self._window = self._app.exec_()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 223, in paintGL
    self.drawItemTree(useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 255, in drawItemTree
    self.drawItemTree(i, useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 244, in drawItemTree
    debug.printExc()
  --- exception caught here ---
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/latebind.py", line 43, in __call__
    return self._finalCall( *args, **named )
TypeError: 'NoneType' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 241, in drawItemTree
    i.paint()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/items/GLMeshItem.py", line 177, in paint
    glVertexPointerf(verts)
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/latebind.py", line 47, in __call__
    return self._finalCall( *args, **named )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/wrapper.py", line 626, in wrapperCall
    storeValues(
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/arrays/arrayhelpers.py", line 156, in __call__
    contextdata.setValue( self.constant, pyArgs[self.pointerIndex] )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue
    context = getContext( context )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext
    raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
  debug.printExc()
Error while drawing item <steps.API_2.visual._GenericSurfElem object at 0x7f75e4b82b80>.
/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py:244: RuntimeWarning: 
Traceback (most recent call last):
  File "/home/maxim/STEPS_Example/python_scripts/API_2/visual/ip3r_sim.py", line 160, in <module>
    sc.run()
  File "/opt/conda/lib/python3.9/site-packages/steps/API_2/visual.py", line 152, in run
    self._window = self._app.exec_()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 223, in paintGL
    self.drawItemTree(useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 255, in drawItemTree
    self.drawItemTree(i, useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 244, in drawItemTree
    debug.printExc()
  --- exception caught here ---
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 241, in drawItemTree
    i.paint()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/items/GLScatterPlotItem.py", line 132, in paint
    glVertexPointerf(pos)
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/latebind.py", line 43, in __call__
    return self._finalCall( *args, **named )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/wrapper.py", line 626, in wrapperCall
    storeValues(
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/arrays/arrayhelpers.py", line 156, in __call__
    contextdata.setValue( self.constant, pyArgs[self.pointerIndex] )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue
    context = getContext( context )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext
    raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
  debug.printExc()
Error while drawing item <steps.API_2.visual._GenericTetScatterElem object at 0x7f75e4b99dc0>.
/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py:244: RuntimeWarning: 
Traceback (most recent call last):
  File "/home/maxim/STEPS_Example/python_scripts/API_2/visual/ip3r_sim.py", line 160, in <module>
    sc.run()
  File "/opt/conda/lib/python3.9/site-packages/steps/API_2/visual.py", line 152, in run
    self._window = self._app.exec_()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 223, in paintGL
    self.drawItemTree(useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 255, in drawItemTree
    self.drawItemTree(i, useItemNames=useItemNames)
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 244, in drawItemTree
    debug.printExc()
  --- exception caught here ---
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/GLViewWidget.py", line 241, in drawItemTree
    i.paint()
  File "/home/maxim/.local/lib/python3.9/site-packages/pyqtgraph/opengl/items/GLMeshItem.py", line 177, in paint
    glVertexPointerf(verts)
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/latebind.py", line 43, in __call__
    return self._finalCall( *args, **named )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/wrapper.py", line 626, in wrapperCall
    storeValues(
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/arrays/arrayhelpers.py", line 156, in __call__
    contextdata.setValue( self.constant, pyArgs[self.pointerIndex] )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 58, in setValue
    context = getContext( context )
  File "/opt/conda/lib/python3.9/site-packages/OpenGL/contextdata.py", line 40, in getContext
    raise error.Error(
OpenGL.error.Error: Attempt to retrieve context when no valid context
  debug.printExc()

Followed by a lot of errors like these

Error while drawing item <steps.API_2.visual._GenericSurfElem object at 0x7f75e4b99f70>.
Error while drawing item <steps.API_2.visual._GenericTetScatterElem object at 0x7f75c370e1f0>.

After I did export QT_QPA_PLATFORM=wayland the SimDisplay worked without problems and I could run the simulation with the SimControl. I still got these warnings and no plots:

Model checking:
No errors were found
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
QSocketNotifier: Can only be used with threads started with QThread
[2024-01-10 13:45:13,866][INFO][/var/src/STEPS/src/steps/tetexact/tetexact.cpp:123][virtual void steps::tetexact::Tetexact::checkpoint(const string&)]: Checkpoint to  _temp_sim0.cp ... 
[2024-01-10 13:45:13,871][INFO][/var/src/STEPS/src/steps/tetexact/tetexact.cpp:215][virtual void steps::tetexact::Tetexact::checkpoint(const string&)]: complete.

I tried to find a solution, so I followed the instructions from here to change my windowing system from wayland to Xorg. The warnings disappeared and the simulation with the 3D models works nicely, but there is no trace of the PlotDisplay window.

So I don't know what is causing this problem and how to properly set up my environment, and I would be glad if you could help me out.

STEPS Manual link is not available

Hi STEPS developers,

Apologies for the stream of issues :-) I just tried reading the STEPS manual as per link in the main page[1] but I get a 404[2]:

An error has been encountered in accessing this page.

1. Server: steps.sourceforge.net 
2. URL path: /manual_3.0.0/manual_index.html 
3. Error notes: NONE 
4. Error type: 404 
5. Request method: GET 
6. Request query string: NONE 
7. Time: 2017-03-10 10:21:20 UTC (1489141280)

Thanks for your time

Marco

[1] http://steps.sourceforge.net/STEPS/documentation.php
[2] http://steps.sourceforge.net/manual_3.0.0/manual_index.html

Unbundling various libraries

Hello,

I am working on making STEPS available in NeuroFedora. While auditing the source, I see that a couple of libraries are bundled. Is this necessary? Would it be possible to remove these bundles or provide a mechanism that permis the use of system installations of these libraries?

  • easyloggingpp: single header library so relatively easy to unbundle, can be down downstream
  • Random123: not developed any more but still easy to unbundle and can also be done downstream. Please note that Random123 does not support all architectures, and therefore using it also implies that STEPS does not support all architectures. (Neuron, which also uses Random123 has similar constraints)
  • cvode: outdated version of SUNDIALS, as the current version is 3.2.x. One needs to check if STEPS compile with the newer version, so unbundling this is potentially a more involved task.
  • superLU_dist: outdated version of SuperLU_dist as the current version is 5.2.x. Here too, one needs to check if STEPS will compile with the newer version, and that makes this a more involved task also.

I can help with testing with the newer libraries, since they are available in Fedora. However, it would be nice if STEPS did not bundle older versions of software, or if it did it bundled newer versions that contain fixes and enhancements. If a mechanism to enable the use of system versions of libraries can be included in the CMake files, that would be awesome.

Problem in installing steps

Hi,
I tried installing STEPS through source code. the first command "cd STEPS" is itself, and then i assumed "STEPS-master" is the folder mentioned. Then, while entering "cmake..", it is showing two errors, for which i have attached the screenshot also.

Please help me resolve it.

Screenshot from 2019-04-03 10:17:01

Consider renaming repository, removing postfix "_Release"

Hi STEPS developers,

I think the "_Release" postfix is a bit confusing. Presumably the name of the product is STEPS right? i.e. what's the difference between STEPS and STEPS_Release? Presumably you want to make some kind of separation between your internal repository with full version history and a "release" repository? Even so I'd consider not calling the GitHub repository STEPS_Release, since all the forks will also be called STEPS_Release and so on.

Cheers

Marco

Can we install STEPS on a local machine (Desktop computer) ?

Hi @mesimulator, I create a new issue for you and will answer your question here.

Dear STEPS Support,

I am just starting to use STEPS for my research. I question is :
Can we install STEPS on a local machine (Desktop computer) ? I mean will it take
a lot of space / slow down my desktop ?

In that case, I should install it on computing clusters ?

Please let me know your suggestions on this.

Thanks in anticipation,

Yes, you can install and use STEPS on a desktop. In fact, this is our recommendation for new users. The installation itself shouldn't take much of time and storage. The CPU/memory/storage consumption of the simulation depends on your model, but a desktop should be able to handle common pathway models.
The parallel solver is mainly designed for modeling large scale spatial systems with a great number of tetrahedrons (~10e6 and above). For that, you will need to deploy STEPS on a cluster.

incompatibility with Anaconda

@FrancescoCasalegno @adevress

One user has reported an issue importing STEPS with Ubuntu 16.04 and Anaconda, as follows:

urakubo-h@knv00:~/SOFTWARES/STEPS-master/build$ python
Python 2.7.13 |Anaconda custom (64-bit)| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
import steps
Unable to import STEPS with NumPy support, try to import without NumPy...
Unable to import STEPS.
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "/home/urakubo-h/anaconda/lib/python2.7/site-packages/steps/__init__.py", line 46, in <module>
   _steps_swig.init()
NameError: name '_steps_swig' is not defined

The installation log seems fine.

steps_install2.txt

I've reproduced the issue with this docker image anaconda_steps.

Interestingly, replacing Anaconda with Miniconda resolves the issue, as shown in this docker image miniconda_steps, so I assume the issue comes from Anaconda. Any idea what could cause this issue?

libgomp: Invalid value for environment variable OMP_DYNAMIC

This is a resolved issue.

OS: CentOS 6.5 (Old. many softwares are updated including gcc)
Python: 2.7.13 (Anaconda)

Python 2.7.13 |Continuum Analytics, Inc.| (default, Dec 20 2016, 23:09:15) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import steps

libgomp: Invalid value for environment variable OMP_DYNAMIC
>>> 

Solution:
add export OMP_DYNAMIC=FALSE to environment profile.

Error compiling Cython file during [make] progress: cysteps_dist.pyx:32:8: 'mpi4py/MPI.pxd' not found

When compling the latest version, the source code can't be complied due to the following problem even through prerequisites have been installed.

[ 62%] Cythonizing extension cysteps_dist.pyx

Error compiling Cython file:

...
This file is the user-interface file for all objects related to STEPS 4. All
objects are directly derived from the corresponding Cython objects.
"""

from cython.operator cimport dereference as deref
cimport mpi4py.MPI as MPI
^

cysteps_dist.pyx:32:8: 'mpi4py/MPI.pxd' not found
make[2]: *** [pysteps/CMakeFiles/cysteps.dir/build.make:98: ../pysteps/steps/cysteps_dist.cpp] Error 1
make[2]: *** Deleting file '../pysteps/steps/cysteps_dist.cpp'
make[1]: *** [CMakeFiles/Makefile2:1614: pysteps/CMakeFiles/cysteps.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

GPL2 vs. GPL3 license issues

Based on LICENSE.md, it appears that the overall license of STEPS is intended to be GPL-2.0-only.

However, the metadata for the Python packages (wrongly?) indicates a license of GPL-3.0-only:

'license' : 'GNU General Public License Version 3.0',

'license' : 'GNU General Public License Version 3.0',

A number of source files within pysteps explicitly contradict this, e.g:

# STEPS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2,
# as published by the Free Software Foundation.

Furthermore, a few source files really are marked with a license of GPL-3.0-or-later:

// STEPS is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// STEPS is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// STEPS is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// STEPS is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

This is problematic because GPLv2 and GPLv3 are not compatible.

problem in installing STEPS

vinoth@Vinoth:~/STEPS/build$ sudo make install
[sudo] password for vinoth:
[ 81%] Built target libsteps-obj
[ 82%] Built target libsteps
[ 83%] Built target libsteps_static
[ 84%] Built target cysteps
[ 84%] Built target steps_package_pure_py
[ 86%] Built target gtest
[ 87%] Built target gtest_main
[ 89%] Built target test_rng
[ 91%] Built target test_tetmesh
[ 92%] Built target test_membership
[ 93%] Built target test_point3d
[ 95%] Built target test_bbox
[ 96%] Built target test_checkid
[ 98%] Built target test_bdsystem
[ 99%] Built target test_sample
[100%] Built target test_small_binomial
Install the project...
-- Install configuration: "Release"
-- Up-to-date: /steps/cysteps.so
running build
running build_py
running install
running install_lib
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/init.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/SimDisplay.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/Plotting.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/StaticComponent.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/DynamicComponent.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/Control.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/Colors.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/visual/PartitionViewer.py -> steps/visual
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/init.py -> steps
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/model.py -> steps
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/rng.py -> steps
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/quiet.py -> steps
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/morph_support.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/init.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/geom_decompose.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/steps_cubit.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/matlab_support/init.py -> steps/utilities/matlab_support
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/matlab_support/simulate.py -> steps/utilities/matlab_support
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/matlab_support/matlab_parser.py -> steps/utilities/matlab_support
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/matlab_support/event_parser.py -> steps/utilities/matlab_support
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/meshio.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/meshctrl.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/sbml.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/steps_shadow.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/metis_support.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/utilities/cubit_support.py -> steps/utilities
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/geom.py -> steps
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/mpi/init.py -> steps/mpi
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/mpi/solver.py -> steps/mpi
copying /home/vinoth/STEPS/build/lib.linux-x86_64-2.7/steps/solver.py -> steps
byte-compiling steps/visual/init.py to init.pyc
byte-compiling steps/visual/SimDisplay.py to SimDisplay.pyc
byte-compiling steps/visual/Plotting.py to Plotting.pyc
byte-compiling steps/visual/StaticComponent.py to StaticComponent.pyc
byte-compiling steps/visual/DynamicComponent.py to DynamicComponent.pyc
byte-compiling steps/visual/Control.py to Control.pyc
byte-compiling steps/visual/Colors.py to Colors.pyc
byte-compiling steps/visual/PartitionViewer.py to PartitionViewer.pyc
byte-compiling steps/init.py to init.pyc
byte-compiling steps/model.py to model.pyc
byte-compiling steps/rng.py to rng.pyc
byte-compiling steps/quiet.py to quiet.pyc
byte-compiling steps/utilities/morph_support.py to morph_support.pyc
byte-compiling steps/utilities/init.py to init.pyc
byte-compiling steps/utilities/geom_decompose.py to geom_decompose.pyc
byte-compiling steps/utilities/steps_cubit.py to steps_cubit.pyc
byte-compiling steps/utilities/matlab_support/init.py to init.pyc
byte-compiling steps/utilities/matlab_support/simulate.py to simulate.pyc
byte-compiling steps/utilities/matlab_support/matlab_parser.py to matlab_parser.pyc
byte-compiling steps/utilities/matlab_support/event_parser.py to event_parser.pyc
byte-compiling steps/utilities/meshio.py to meshio.pyc
byte-compiling steps/utilities/meshctrl.py to meshctrl.pyc
byte-compiling steps/utilities/sbml.py to sbml.pyc
byte-compiling steps/utilities/steps_shadow.py to steps_shadow.pyc
byte-compiling steps/utilities/metis_support.py to metis_support.pyc
byte-compiling steps/utilities/cubit_support.py to cubit_support.pyc
byte-compiling steps/geom.py to geom.pyc
byte-compiling steps/mpi/init.py to init.pyc
byte-compiling steps/mpi/solver.py to solver.pyc
byte-compiling steps/solver.py to solver.pyc
running install_egg_info
Creating
error: [Errno 2] No such file or directory: ''

error: 'CV_FUNCTIONAL' was not declared in this scope

Hi all.

Please, could you make STEPS-3.6.0 compatible with recent Sundials-5.7.0 (if possible)?:

[ 20%] Building CXX object src/CMakeFiles/libsteps-obj.dir/steps/solver/api_main.cpp.o
cd /builddir/build/BUILD/STEPS-3.6.0/build-mpich/src && /usr/lib64/mpich/bin/mpicxx -DELPP_DISABLE_DEFAULT_CRASH_HANDLING=1 -DELPP_NO_DEFAULT_LOG_FILE=1 -DELPP_STL_LOGGING=1 -DENABLE_ASSERTLOG=1 -DGNU_FORCE_INLINE=[[gnu::always_inline]] -DUSE_MPI -I/builddir/build/BUILD/STEPS-3.6.0/src/. -isystem /builddir/build/BUILD/STEPS-3.6.0/src/third_party/easyloggingpp/src -isystem /builddir/build/BUILD/STEPS-3.6.0/src/third_party/cvode-2.6.0/src -isystem /builddir/build/BUILD/STEPS-3.6.0/src/third_party/cvode-2.6.0/include -std=c++11 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -lpthread -lgtest -lgtest_main -march=native -fopenmp  -DNDEBUG -fPIC -MD -MT src/CMakeFiles/libsteps-obj.dir/steps/solver/api_main.cpp.o -MF CMakeFiles/libsteps-obj.dir/steps/solver/api_main.cpp.o.d -o CMakeFiles/libsteps-obj.dir/steps/solver/api_main.cpp.o -c /builddir/build/BUILD/STEPS-3.6.0/src/steps/solver/api_main.cpp
/builddir/build/BUILD/STEPS-3.6.0/src/steps/tetode/tetode.cpp: In constructor 'steps::tetode::CVodeState::CVodeState(uint, uint, realtype, realtype)':
/builddir/build/BUILD/STEPS-3.6.0/src/steps/tetode/tetode.cpp:205:45: error: 'CV_FUNCTIONAL' was not declared in this scope
  205 |     cvode_mem_cvode = CVodeCreate(CV_ADAMS, CV_FUNCTIONAL) ;
      |                                             ^~~~~~~~~~~~~

Regards.

RuntimeError: Unable to synchronously check link existence (addr overflow, addr = 2104, size = 328, eoa = 2048)

Dear fellow researchers:

I have faced with several difficulties while trying to follow the API: the Data recording and analysis from (https://steps.sourceforge.net/manual/API_2/STEPS_Tutorial_DataSaving.html), I used the script from the Git Repository (https://github.com/CNS-OIST/STEPS_Example/blob/master/user_manual/source/API_2/scripts/STEPS_Tutorial_DataSaving_box.py)

The result shows as follows:
Model checking:
No errors were found

Traceback (most recent call last):
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/Diff_hdf5_Save.py", line 60, in
sim.toDB(hdf, f'box_A{A}_B{B}_D{DCST}', A=A, B=B, DCST=DCST)
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/sim.py", line 1885, in toDB
group, self._resultSelectors = dbh._newGroup(self, uid, self._resultSelectors, **kwargs)
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/saving.py", line 4080, in _newGroup
group, selectors = super()._newGroup(sim, uid, selectors, **kwargs)
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/saving.py", line 3747, in _newGroup
self._checkOpenFile(sim)
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/saving.py", line 3570, in _checkOpenFile
self._compObjHandler = _HDF5CompoundObjHandler(
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/saving.py", line 2219, in init
self._setUp()
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/steps/API_2/saving.py", line 2230, in _setUp
if self._COMPOBJ_DSET_NAME not in self._group:
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "/home/zyh/STEPS/venv/lib/python3.10/site-packages/h5py/_hl/group.py", line 514, in contains
return h5g._path_valid(self.id, self._e(name), self._lapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5g.pyx", line 531, in h5py.h5g._path_valid
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5l.pyx", line 212, in h5py.h5l.LinkProxy.exists
RuntimeError: Unable to synchronously check link existence (addr overflow, addr = 2104, size = 328, eoa = 2048)

Although It says: no errors were found, I can only get the Brussselator_box.h5 file but not the box_A0.3_B3_D1e-13_Run0_rank0.xmf file. I assume the latter is needed for visualization in ParaView.

In summary, I wonder what was the possible reason to cause this situation? I would be much appreciate!

Time comparison between Serial Mode and Parallel Mode

is there any comparison about running time between Serial Mode and Parallel Mode on a complex mesh sample?

I notice that opt_method=2 is not allowed to add in Parallel Mode, so what is the default ordering behavior in Parallel Mode?
With specificying opt_method=2 in Serial Mode, do the times differ significantly in magnitude between these two modes?

another question about example: https://steps.sourceforge.net/manual/API_2/STEPS_Tutorial_Distributed.html
I replace the msh file and remove code about two divided physics group, it will cost about 100 seconds for every step time (DT = 2.0e-5) and about 15 hours to finish for total 10ms.
image

In the final code of python, it just run to differrent timestamp, how to know which part cost the most time?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.