On 01/28/2017 08:16 PM, Marc Feeley wrote:
I have just created the “smp” branch which contains a major refactoring of the thread scheduler to support parallel thread execution.
Please note that this is an experimental branch that omits some of the thread features of Gambit (thread priorities, thread interruption, etc). So you should avoid those features in your experiments, and don’t use the smp branch for production code!
I have done some quick testing on OS X and linux, on intel architecture. I’m interested in feedback on Windows and other processor architectures, ARM in particular. I have also only tried the GNU gcc C compiler.
There are special steps needed to build the smp branch. Here are the commands starting with a git clone:
git clone https://github.com/gambit/gambit.git cd gambit git checkout master ./configure make -j4 latest-release ./configure --enable-single-host make -j4 from-scratch git checkout smp cp gsc/_prims.scm gsc/_prims.scm-smp cp gsc/_t-c-2.scm gsc/_t-c-2.scm-smp git checkout master cp gsc/_prims.scm-smp gsc/_prims.scm cp gsc/_t-c-2.scm-smp gsc/_t-c-2.scm make -j4 make bootstrap git reset --hard git checkout smp make bootclean ./configure --enable-single-host --enable-multiple-threaded-vms make -j4 make check
I get a hang right here on
------------ TEST 11 (run unit tests) make ut make[2]: Entering directory '/home/lucier/programs/gambit/gambit/tests' LD_LIBRARY_PATH=../lib:../gsi:../gsc:/usr/local/libimobiledevice/lib:/pkgs/chicken-4.10.0/lib:/usr/local/Gambit/current/lib:/usr/local/netpbm10/lib: ../gsi/gsi -:p1,tl,~~bin=../bin,~~lib=../lib,~~include=../include -f ./run-unit-tests.scm [ 31| 0| 0] 25% ##########................................ .3s Suspended firefly:~/programs/gambit/gambit> kill -9 %+ firefly:~/WWW/615-2016/software> uname -a Linux firefly 4.8.0-34-generic #36-Ubuntu SMP Wed Dec 21 17:24:18 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux firefly:~/programs/gambit/gambit> gsi -v v4.8.7 20170129000735 x86_64-unknown-linux-gnu "./configure 'CC=gcc -march=native -D___CAN_IMPORT_CLIB_DYNAMICALLY' '--enable-single-host' '--enable-shared' '--enable-multiple-versions' '--enable-multiple-threaded-vms'"
It doesn't hang the next "make check" then it hangs with
make[2]: Entering directory '/home/lucier/programs/gambit/gambit/tests' LD_LIBRARY_PATH=../lib:../gsi:../gsc:/usr/local/libimobiledevice/lib:/pkgs/chicken-4.10.0/lib:/usr/local/Gambit/current/lib:/usr/local/netpbm10/lib: ../gsi/gsi -:p1,tl,~~bin=../bin,~~lib=../lib,~~include=../include -f ./run-unit-tests.scm [ 74| 0| 0] 60% #########################................. .8s
There's no CPU running anything.
Brad