From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Fri Feb 05 2010 - 11:09:20 PST
Evi, 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 http://upc.lbl.gov/docs/system/index.html . 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 in the "SPECIFYING THE LOCATION OF THE UPC-TO-C TRANSLATOR" section in the file INSTALL.TXT of the Berkeley UPC Runtime (or online at http://upc.lbl.gov/download/dist/INSTALL.TXT) 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. -Paul 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