FAQs and Known Issues¶
Tools and Extensions¶
Q: Does pypet support Python 2.6 and 2.7?
A: Python 2.6 and 2.7 are no longer supported. Still if you need pypet for these versions check out the legacy 0.3.0 package. You can pip install it viapip install pypet==0.3.0
.
Q: How can I open and inspect an HDF5 file created by pypet?
Q: Can I use pypet on my computing cluster or can I distribute pypet runs among different servers?
A: Yes, you can, either by combining pypet with SCOOP or with SAGA Python (see also Multiprocessing with a Cluster or a Multi-Server Framework). Examples are provided here: Using SCOOP multiprocessing and Using pypet with SAGA-Python.
Q: I not only need to explore but also tune parameters. Are there any optimization methods available in pypet?
A: Not directly, but you can easily combine pypet with the evolutionary optimization toolkit DEAP. Using DEAP the evolutionary computation framework shows you how.
Performance Issues¶
Q: Exploring many runs (10k+) pypet becomes incredibly slow when it comes to loading and storing data!?
A: HDF5 has a hard time managing nodes with many children. To avoid this simply group your result into buckets using the ‘$set’ wildcard. See also the Optimization Tips.
Q: pypet produces enormously large files of several Gigabytes despite them containing almost no data!?
A: Your HDF5 version is too old (most likely you are using 1.8.5). Please update to 1.8.9 or newer.
Infinite Loops¶
Q: My program does not terminate (i.e. it does not crash but runs forever) when I use pypet in multiprocessing mode in combination with matplotlib and savefig!?
A: Matplotlib uses numpy for linear algebra operations, these operations are often necessary when plotting. So, to solve the issues take a look at the next question.
Q: My program does not terminate (i.e. it does not crash but runs forever) when I use pypet in multiprocessing mode in combination with numpy and linalg.inv or some similar function!?
A: Numpy uses openBLAS (http://www.openblas.net/) to solve linear algebra operations. Yet, there are many issues with openBLAS and Python multiprocessing. To resolve this set the environment variablesOPENBLAS_NUM_THREADS=1
andOMP_NUM_THREADS=1
.
Crashes and Errors¶
Q: GitPython does not work. If I specify my repository git_repository='./myrepo'
,
pypet crashes with an AttributeError: 'Repo' object has no attribute 'index'
.
What should I do?
A: You probably have an older version of GitPython (likely 0.1.7), install a newer one. Ifpip install GitPython
still downloads the old version, trypip install --pre GitPython
or if you simply want to upgrade, usepip install --upgrade --pre GitPython
.
Q: My program crashes with
TypeError: [..] dtype: float64 its type is <class 'pandas.core.series.Series'>.
!?
A: You are using pandas version0.13.x
. Unfortunately, pandas performs some unwanted upcasting that cannot be handled by pypet (see https://github.com/pydata/pandas/issues/6526/). This unwanted upcasting has already been removed in the next pandas version. So upgrade to0.14.1
or newer.
Q: My program crashes if I try to store a Trajectory containing an ArrayParameter!?
A: Look at the previous answer, you are using pandas0.13.x
, please upgrade your pandas package to at least0.14.1
.
Q: My program crashes with a ValueError: unknown type: 'object'
!?
A: Look at the previous answer, you are using pandas0.13.x
, please upgrade your pandas package to at least0.14.1
.
Other Problems¶
Q: If I create and environment in an IPython console everything becomes gibberish!?
A: Pypet will redirectstdout
to files. Unfortunately, this messes with the IPython console. To avoid this simply disable logging of this stream setting thelog_stdout
option toFalse
:env = Environment( ..., log_stdout=False, ...)
.
Q: I have large data sets that are not stored if I use multiprocessing and the lock wrapping!?
A: Probably, you use an older HDF5 version (< 1.8.7
) that does not allow simultaneous openings of a single HDF5 file. Either install a newer version or switch to queue wrapping.
Q: I already have a rather evolved simulator can I integrate it with pypet or do I need to start from scratch?
A: No, of course you don’t neet to start from scratch. T here are ways to integrate or wrap pypet around your project. Example Wrapping an Existing Project (Cellular Automata Inside!) shows you how to do that or take a look at section Combining pypet with an Existing Project.