charmrun on multicore builds doesn't consume ++local
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.
#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.