Hi Stephen,
So "GIL" stands for Global Interpreter Lock. It's used internally by
Python to prevent the reference count of objects to be changed;
ideally, for long-running tasks that don't interfere with any
PyObjects, this gets released so that different threads can all act
simultaneously. (Python uses 'native' rather than 'green' threads, so
this would in fact take advantage of multiple cores.) This happens,
for instance, during disk IO operations in python core. However,
anything that uses python rather than C requires that the interpreter
be globally locked. NumPy allows you to specify where threads should
be allowed -- thus it needs to be able to interact with the GIL. The
two symbols you are missing are related to this interaction,
specifically locking and unlocking the global state of the
interpreter.
I would say before you try downgrading, that you compile without the
"--without-threads" option. It seems to me that while the internals
of Python have disabled the threading, this didn't get propagated to
the NumPy build. When I compiled for CNL, I also looked at these
notes:
http://code.google.com/p/pyprop/wiki/Installation_CrayXT4
which don't mention disabling threading. Since none of YT (or any of
its subdependencies that do not use GUI toolkits) use threads, this
should be okay even if the threading library is unavailable on the
compute nodes. (I see no reason why it would not be available,
however.)
Try rerunning with the same options, but remove your disabling of
threads, and let's see how that goes? You might have to 'make
distclean' in Python2.6, and then look for the symbols and try
re-building numpy.
-Matt
On Tue, Feb 10, 2009 at 7:31 PM, Stephen Skory
Matt,
In your Python2.6 source directory, what is the output of:
$ grep ^ac config.log | grep thread
In my CNL build of 2.5, I have:
ac_cv_cxx_thread=no (*) ac_cv_func_pthread_init=no ac_cv_func_pthread_sigmask=yes (*) ac_cv_header_pthread_h=yes ac_cv_header_thread_h=no ac_cv_kpthread=no ac_cv_kthread=no ac_cv_pthread=no (*) ac_cv_pthread_is_default=yes (*) ac_cv_pthread_system_supported=yes (*) ac_cv_sizeof_pthread_t=8
Here's mine:
ac_cv_cxx_thread=yes (*) ac_cv_func_pthread_init=no ac_cv_header_pthread_h=yes ac_cv_header_thread_h=no ac_cv_kpthread=no ac_cv_kthread=no ac_cv_pthread=yes (*) ac_cv_pthread_is_default=no (*) ac_cv_sizeof_pthread_t=8
it's different, I've added (*) to make it clearer.
I wonder if there is something going on in the include files; could you additionally send back your ./configure line, taken from the top of config.log in your python2.6 directory?
$ ./configure --prefix=/nics/c/home/sskory/yt SO=.a DYNLOADFILE=dynload_kraken.o MACHDEP= kraken --host=x86_64-unknown-linux-gnu --disable-sockets --disable-ssl --enable-static --di sable-shared --without-threads
This is verbatim from the instructions except for machine specific changes.
$ nm Python/pystate.o | grep PyGIL
I get nothing resulting from this command.
Hrm... so this pystate stuff isn't being made correctly. And a bunch of other stuff doesn't match, either. Do you think I should try to downgrade and install Python 2.5?
_______________________________________________________ sskory@physics.ucsd.edu o__ Stephen Skory http://physics.ucsd.edu/~sskory/ _.>/ _Graduate Student ________________________________(_)_\(_)_______________ _______________________________________________ yt-users mailing list yt-users@lists.spacepope.org http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org