From: Evi Dube (dube1_at_llnl.gov)
Date: Fri Feb 05 2010 - 12:35:18 PST
Thank you for your thoughts below - they, of course, generated more questions :-) 1. I did get the "Berkeley UPC Runtime" to build - the latest version from the web site - berkeley_upc-2.10.0 - however it was not happy with the gnu 4.0, 4.1 or 4.2 versions compilers - called them "buggy compilers", it liked the 4.3 versions, so I used the configure options CC and CXX. Since I did not get the berkeley_upc_translator-2.10.0 to build, however noticed that I had a "upcc" in the bin directory, I figured I would try to compile and build a small test code from some UPC tutorials (hello world, then Monte Carlo PI) and they actually built and ran. QUESTION: What translator is it using? 2. From your info below, that information is helpful, since I actually asked to run 4 processors - and you are telling me it said I was only running 1 - so I need to figure out how to run 4 on this machine - this is my homework. thanks evi At 11:09 AM 2/5/2010, you wrote: >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 >