Re: Install question

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Sun Jul 20 2008 - 21:09:00 PDT

  • Next message: Jeremy Cowles: "Re: Install question"
    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
    

  • Next message: Jeremy Cowles: "Re: Install question"