Project

General

Profile

Bug #1801

charmrun on multicore builds doesn't consume ++local

Added by Sam White over 1 year ago. Updated over 1 year ago.

Status:
Merged
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
02/17/2018
Due date:
% Done:

0%


Description

When using a multicore build, charmrun doesn't consume '++local'. I think that it should, since it makes perfect sense and is effectively the default, so we shouldn't let the argument pass through to the application's command line arguments.

We should review other charmrun and runtime commands for this type of behavior. I think we currently only consume things like `++ppn` in SMP builds, though I think we should instead consume them and emit a warning that they are only used in SMP mode. Maybe something to discuss in Core meeting.

History

#1 Updated by Eric Bohm over 1 year ago

  • Assignee set to Evan Ramos

#2 Updated by Evan Ramos over 1 year ago

  • Status changed from New to Implemented

#3 Updated by Sam White over 1 year ago

  • Status changed from Implemented to Merged

#4 Updated by Evan Ramos over 1 year ago

I think we currently only consume things like `++ppn` in SMP builds, though I think we should instead consume them and emit a warning that they are only used in SMP mode.

Done in https://charm.cs.illinois.edu/gerrit/3779

#5 Updated by Sam White over 1 year ago

I am still seeing ++local not consumed on multicore-darwin-x86_64. It looks like it gets passed through to the RTS which ignores it:

$ ./charmrun +p1 ./jacobi +vp8 2 2 2 1 ++local
Running command: ./jacobi +vp8 2 2 2 1 ++local +p1

Charm++: standalone mode (not using charmrun)
Charm++> Running in Multicore mode:  1 threads
Converse/Charm++ Commit ID: v6.8.2-533-g94f49f161
CharmLB> Load balancer assumes all CPUs are same.
Charm++> Running on 1 unique compute nodes (8-way SMP).
Charm++> cpu topology info is gathered in 0.000 seconds.
WARNING: ++local is a command line argument beginning with a '+' but was not parsed by the RTS.
If any of the above arguments were intended for the RTS you may need to recompile Charm++ with different options.

#6 Updated by Evan Ramos over 1 year ago

It looks like the multicore charmrun shell script is only set up to parse arguments until it reaches one that does not begin with +, in this case the name of the program, and then pass the rest to the RTS verbatim. `++local` before that point should be consumed correctly.

#7 Updated by Sam White over 1 year ago

Yikes, that's correct, it works if ++local comes before the program's name.

Also available in: Atom PDF