From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Sun Jul 20 2008 - 21:09:00 PDT
Jeremy, I've been playing some more w/ Berkeley UPC on Vista+Cygwin and the errors I am seeing appear (so far) to be isolated to the pthreads support. This suggests a work-around you might apply if performance is not your primary concern (or perhaps is not *yet*). What I have in mind is to use the udp-conduit, which will mean no pthreads, but will make for slower communication among threads: try using UPCC='upcc -network=ucp' and UPCRUN='upcrun -localhost'. You might also consider passing -shared-heap=20 to upcc, rather than to upcrun. This will compile it into the application as the default, avoiding the need to specify it each time you run. -Paul Jeremy Cowles wrote: > I think everything is setup now, but something strange is happening > and I want to make sure this is normal. I am compiling > /upc-examples/cpi as follows: > > $ make UPCC='upcc -pthreads' > upcc -pthreads -o cpi cpi.upc > upcc -pthreads -o mcpi mcpi.upc > > Which is successful, and I can run the example with 2 threads and no > problem. However, when I run with 3 threads, the first implementation > (cpi) completes, but I get a seg fault during mcpi. Is it safe to > assume this is because I have only 2 cores on this machine and am > trying to run 3 threads? It seems like both should crash. Here is the > output: > > > -- > $ make run UPCRUN='upcrun -shared-heap 20' THREADS=3 > > upcrun -shared-heap 20 -np 3 ./cpi > WARNING: Node 0 running more threads (3) than there are physical CPU's (2) > enabling "polite", low-performance synchronization algorithms > UPCR: UPC threads 0..2 of 3 on toaster (process 0 of 1, pid=269816) > WARNING: Conflicting environment values for > GASNET_COLL_GATHER_ALL_DISSEM_LIMIT (1024) and GASNET_CO > LL_GATHER_ALL_DISSEM_LIMIT_PER_THREAD (341) > WARNING: Using: 341 > WARNING: Conflicting environment values for > GASNET_COLL_EXCHANGE_DISSEM_LIMIT (1024) and GASNET_COLL > _EXCHANGE_DISSEM_LIMIT_PER_THREAD (113) > WARNING: Using: 113 > Approx: 3.14159357951571883 Error: 0.00000092592592571 > > upcrun -shared-heap 20 -np 3 ./mcpi > WARNING: Node 0 running more threads (3) than there are physical CPU's (2) > enabling "polite", low-performance synchronization algorithms > UPCR: UPC threads 0..2 of 3 on toaster (process 0 of 1, pid=268236) > WARNING: Conflicting environment values for > GASNET_COLL_GATHER_ALL_DISSEM_LIMIT (1024) and GASNET_CO > LL_GATHER_ALL_DISSEM_LIMIT_PER_THREAD (341) > WARNING: Using: 341 > WARNING: Conflicting environment values for > GASNET_COLL_EXCHANGE_DISSEM_LIMIT (1024) and GASNET_COLL > _EXCHANGE_DISSEM_LIMIT_PER_THREAD (113) > WARNING: Using: 113 > *** Caught a fatal signal: SIGSEGV(11) on node 0/1 > NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the > environment to generate a backtrac > e. > make: *** [run] Segmentation fault > -- > > > I tried the same thing with GASNET_BACKTRACE=1, after if I run with 3 > threads, mcpi seems to go into an infinite loop - if I run with np=2 > and GASNET_BACKTRACE=1, I get a seg fault right away: > > > -- > $ make run UPCRUN='upcrun -shared-heap 20' THREADS=2 > upcrun -shared-heap 20 -np 2 ./cpi > UPCR: UPC threads 0..1 of 2 on toaster (process 0 of 1, pid=312468) > *** Caught a fatal signal: SIGSEGV(11) on node 0/1 > NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the > environment to generate a backtrac > e. > make: *** [run] Segmentation fault > -- > > > Seems like maybe something is not configured properly. I will also > check out the docs and try to see if I am missing something obvious. > > > Thanks again, > Jeremy > > > > On Sun, Jul 20, 2008 at 12:45 PM, Jeremy Cowles > <jeremy_dot_cowles_at_gmail_dot_com <mailto:jeremy_dot_cowles_at_gmail_dot_com>> wrote: > > Thank you so much! That did the trick. I was > making/configuring/installing for hours last night... I'm just > starting to learn about UPC/parallel programming, I cant wait to > get running! > > Thanks again, > Jeremy > > > > On Sun, Jul 20, 2008 at 12:34 PM, Paul H. Hargrove > <PHHargrove_at_lbl_dot_gov <mailto:PHHargrove_at_lbl_dot_gov>> wrote: > > Jeremy, > > I suspect you see "make: `install' is up to date." because > there is a file named "INSTALL" in the top source directory, > and Cywin is case-insensitive. > I think the simplest option for you would be "mv INSTALL > INSTALL.txt". > In the future, it may be best to configure/make in a > directory other than the source directory (see step 1 in > INSTALL, the part following "if you wish to build in a > separate directory") . That would also avoid this problem. > > I've created a bug entry for this problem: > http://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=2304 > where we can track a long-term solution (either documenting > the issue or working around it). > > -Paul > > > Jeremy Cowles wrote: > > Hi, > > I am having a problem installing the Berkeley UPC runtime > (2.6.0). I've done the following: > > $ ./configure (no options) > > had permission issues, but completed with success > after a few runs > > $ ./make > > multiple permissions issues, same as above > > $ ./make install > > make: `install' is up to date. > > $ ./make install-local > > (this completed ok) > > However, when I run upcc I get: > > $ upcc > WARNING: skipping match for opt, because > /usr/local/berkeley_upc/opt/bin/upcc.pl does not exist. > You may need to update your Berkeley UPC install or the > configure file at: /usr/local/berkeley_upc/ > etc/multiconf.conf > ERROR: No matching Berkeley UPC configuration found in > /usr/local/berkeley_upc/etc/multiconf.conf! > > I do have a /usr/local/berkeley_upc/etc/multiconf.conf, > unmodified. > Also, this is the /usr/local/berkeley_upc listing: > > /usr/local/berkeley_upc$ ls -R > .: > bin etc > > ./bin: > upcc upcc_multi upcc_multi.pl > > ./etc: > multiconf.conf > > > Which seems really slim. > I am running > Vista ultimate with Cygwin, > gcc 3.4.4, and > all the requirements listed on the Cygwin install notes. > I have no MPI compiler. > > But the build does seem to work when I run upcc from the > directory where i ./configured & made it: > > ~/Desktop/berkeley_upc-2.6.0 > $ ./upcc > upcc: Error: no input files > > And from this location, I can compile and run the > hello.upc test. > > ~/Desktop/berkeley_upc-2.6.0/upc-examples > $ ../upcrun -n 2 hello > UPCR: UPC threads 0..1 of 2 on toaster (process 0 of 1, > pid=561368) > UPC Runtime warning: Requested shared memory (128 MB) > > available (126 MB) on node 0 (toaster): using 63 MB per > thread instead > Welcome to Berkeley UPC!!! > - Hello from thread 1 > - Hello from thread 0 > > > Any ideas on how I can make the make file stop thinking > it's installed? > > Thanks, > Jeremy > > > > -- > Paul H. Hargrove PHHargrove_at_lbl_dot_gov > <mailto:PHHargrove_at_lbl_dot_gov> > Future Technologies Group HPC Research > Department Tel: +1-510-495-2352 > Lawrence Berkeley National Laboratory Fax: +1-510-486-6900 > > > -- Paul H. Hargrove PHHargrove_at_lbl_dot_gov Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900