jcduell_at_lbl_dot_gov
Date: Mon Aug 15 2005 - 18:51:44 PDT
On Mon, Aug 15, 2005 at 05:45:56PM -0400, Marc L. Smith wrote: > > When I set SSH_SERVERS as you recommend, I get a runtime error: > > ~~~ > mlsmith@n1:~/upc> upcc -T 8 helloworld2.upc > mlsmith@n1:~/upc> upcrun helloworld2 > Not enough machines in environment variable SSH_SERVERS to satisfy > request for (8). > Only (4) machines available: n1 n2 n3 n4 > *** AMUDP ERROR: Error spawning SPMD worker threads. Exiting... > mlsmith@n1:~/upc> This is because you're not using pthreads, so an executable statically compiled for 8 UPC threads will use 8 processes, and thus needs 8 entries in your SSH_SERVERS/UPC_NODES. If you add -pthreads, you should be OK: upcc -T 8 -pthreads helloworld2.upc upcrun helloworld2 > default_cpus_per_node = 2 > (currently this is blank) This ought to work in theory for you example above, but I've just discovered that it doesn't. I've added a bug (#1213) to our bugzilla server about it. It probably won't be fixed by the release, though. Generally, you'll want to use -pthreads to get the best performance on an SMP, and in that case this setting actually does work, so yes, you probably want to set it (assuming all your nodes are 2-way SMPs). > udp_spawn_nodes = n1 n2 n3 n4 > (currently, this is blank) This is not actually for providing a list of node names--it's the command line that should be used when -nodes or -cpus-per-host is passed to upcrun. I believe that this should currently be "%P %N %A", instead of blank, but the only effect of having it be blank (for programs compiled with -pthreads) is to cause some harmless warnings to be emitted. Thanks for rooting out these bugs! -- Jason Duell Future Technologies Group <jcduell_at_lbl_dot_gov> Computational Research Division Tel: +1-510-495-2354 Lawrence Berkeley National Laboratory