Re: QUESTION: as a new UPC user

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Fri Feb 05 2010 - 11:09:20 PST

  • Next message: Evi Dube: "Re: QUESTION: as a new UPC user"
    Welcome to the UPC community.
    Some answers for you:
    1.  The "Berkeley UPC Runtime" contains the runtime libraries that 
    implement the UPC language features and communication, plus the compiler 
    driver "upcc" and the launcher "upcrun".  The "upcc" driver functions by 
    passing UPC code to a UPC-to-C translator which generates C code with 
    calls to the runtime libraries.  The translated code is then compiled 
    and linked by the normal C compiler.  This is described briefly at .
    As you have noticed, the Translator is less portable than the Runtime.  
    For that reason we package them separately and provide the ability to 
    use a web-based UPC translator we have built (or you can build your own 
    on your local network).
    The manual is mostly mute on the subject of translator because it should 
    be totally transparent once setup.  The default behavior of the runtime 
    is to use our network based translator, meaning that as a developer you 
    don't NEED to download or build the translator unless you have concerns 
    over the privacy/security of your code or about the latency/throughput 
    of compilation.  Information about seting up the translator can be found 
    the file INSTALL.TXT of the Berkeley UPC Runtime (or online at
    2a.  As mentioned above the translator is less portable than the 
    runtime.  In particular it is very sensitive to the g++ version in use.  
    We hope over time to improve this, but it is not our highest priority.  
    The current release should work with most g++ 4.0, 4.1 or 4.2 versions, 
    but has problems with 4.3.
    2b.  The output you see is just telling you are running 1 UPC thread and 
    what hostname and pid it has.  This output is useful to confirm that you 
    are running the number of threads expected and that they are spread over 
    multiple hosts in the expected manner (or if you need to kill the 
    processes for some reason).  However, if you pass "-q" to upcrun then 
    this output will be suppressed.
    Evi Dube wrote:
    > I am just starting to use UPC, so my questions will be on the naive side:
    > 1. What is the difference between the Berekely UPC Runtime and the 
    > UPC-to_C Translator - why would I need both of them from a developer's 
    > view? The manual does not talk about the translator?
    > 2. I actually think I was able to get the Runtime to build on some 
    > Linux x86-64 clusters at Livermore using gnu compilers, version 4.3.2. 
    > I could not get the translator to compile, thought. When I run a 
    > simple hello world program, or the Monte Carlo Pi program, I get the 
    > following message:
    > UPCR: UPC thread 0 of 1 on yana8 (process 0 of 1, pid=23899)
    > What does that mean?
    > thank you
    > evi
    Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
    Future Technologies Group                 Tel: +1-510-495-2352
    HPC Research Department                   Fax: +1-510-486-6900
    Lawrence Berkeley National Laboratory     

  • Next message: Evi Dube: "Re: QUESTION: as a new UPC user"