Re: QUESTION: as a new UPC user

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Fri Feb 05 2010 - 17:25:50 PST

  • Next message: Evi Dube: "Re: QUESTION: as a new UPC user"
    The translator CGI is meant to talk to the upcc driver, not to people.  
    It expects to receive a tar file via an HTTP POST command.  It you want 
    to try out an interactive interface to our UPC-to-C translator try
    Is there any error output after the line "upcc: error during UPC-to-C 
    translation (sgiupc stage): "?  The output following that line should 
    indicate the specific error.  The part about "during remote HTTP 
    translation" is just an indication of what stage the compilation reached.
    The translator would have been used by the upcc driver even for a 
    hello-world application that didn't contain any extensions beyond ISO 
    C.  So, the use of UPC keywords by itself would not account for an error 
    where there was not one before.  Based on the text of your email, my 
    guess is that you may have used "upc-forall" when "upc_forall" was 
    intended, or have some other syntax problem.
    Evi Dube wrote:
    > When I try to access that translator - I get the following error:
    > upcc.cgi: Illegal arch_size parameter: '' at 
    > /srv/www/htdocs/upcc-2.10.0.cgi line 149.
    > Additionally, once I started to actually use real UPC commands - i.e. 
    > upc-forall - which I believe need the translator - then I got the 
    > following error from the UPC complier:
    > yana4{dube}168:  ../bin/upcc vector_add_upc.v2.c -o vector_add_upc.v2
    > Error during remote HTTP translation:
    > upcc: error during UPC-to-C translation (sgiupc stage):
    > As for the parrallelization error - I figured out in using the linux 
    > cluster parallel job scheduled we have at livermore that I was not 
    > using the correct option for the number of processes.
    > thanks for your help,
    > evi
    > At 04:04 PM 2/5/2010, you wrote:
    >> Evi,
    >> Default translator is http://*
    >> This and much more info about the configuration is available by 
    >> running "upcc -V".
    >> When you say you asked for 4 UPC threads and got only 1, what did 
    >> your upcrun command line look like exactly?
    >> -Paul
    >> Evi Dube wrote:
    >>> 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://** .
    >>>> 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://**
    >>>> 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
    >> -- 
    >> 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
    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: Evi Dube: "Re: QUESTION: as a new UPC user"