From: Jeremy Cowles (jeremy.cowles_at_gmail_dot_com)
Date: Sun Jul 20 2008 - 21:29:33 PDT
You are right, at this point performance doesn't really matter to me, I just want to start working with it. Using the -network switch worked (well, -network=upc did not work, but I assumed that upc was a typo for udp). I added my self to the CC list on the bug report too. Thanks again for all the help! Jeremy On Sun, Jul 20, 2008 at 9:09 PM, Paul H. Hargrove <PHHargrove_at_lbl_dot_gov> wrote: > 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.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> >> 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 >>> 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 > >