[Numpy-discussion] Moving away from using accelerate framework on mac os x ?
cournape at gmail.com
Sat Aug 4 07:04:35 EDT 2012
During last PyCon, Olivier Grisel (from scikits-learn fame) and myself
looked into a nasty bug on mac os x: https://gist.github.com/2027412.
The short story is that I believe this means numpy cannot be used with
multiprocessing if linked against accelerate framework, and as such we
should think about giving up on accelerate, and use e.g. ATLAS on mac
for our official binaries.
Long story: we recently received a answer where the engineers mention
that using blas on each 'side' of a fork is not supported. The meat of
the email is attached below
---------- Forwarded message ----------
From: <devbugs at apple.com>
Subject: Bug ID 11036478: Segfault when calling dgemm with Accelerate
/ GCD after in a forked process
To: olivier.grisel at gmail.com
Thank you for contacting us regarding Bug ID# 11036478.
Thank you for filing this bug report.
This usage of fork() is not supported on our platform.
For API outside of POSIX, including GCD and technologies like
Accelerate, we do not support usage on both sides of a fork(). For
this reason among others, use of fork() without exec is discouraged in
general in processes that use layers above POSIX.
We recommend that you either restrict usage of blas to the parent or
the child process but not both, or that you switch to using GCD or
pthreads rather than forking to create parallelism.
More information about the NumPy-Discussion