|
@@ -758,23 +758,44 @@ static struct evconnlistener *controller_create(struct event_base *evbase,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
int controller_parse_args(int argc, char **argv, unsigned short &bindport,
|
|
int controller_parse_args(int argc, char **argv, unsigned short &bindport,
|
|
|
- Worklist &worklist)
|
|
|
|
|
|
|
+ Worklist &worklist, unsigned short &total_nodes,
|
|
|
|
|
+ unsigned short &GB_mem_per_node)
|
|
|
{
|
|
{
|
|
|
bindport = 0;
|
|
bindport = 0;
|
|
|
-
|
|
|
|
|
- if (argc > 2 && !strncmp(argv[1], "-p", 2)) {
|
|
|
|
|
- // A port number was specified
|
|
|
|
|
- bindport = strtoul(argv[2], NULL, 10);
|
|
|
|
|
- argc -= 2;
|
|
|
|
|
- argv += 2;
|
|
|
|
|
|
|
+ total_nodes = 0;
|
|
|
|
|
+ GB_mem_per_node = 0;
|
|
|
|
|
+ int reps = 1;
|
|
|
|
|
+
|
|
|
|
|
+ while (argc > 2 && argv[1][0] == '-') {
|
|
|
|
|
+ if (!strncmp(argv[1], "-p", 2)) {
|
|
|
|
|
+ // A port number was specified
|
|
|
|
|
+ bindport = strtoul(argv[2], NULL, 10);
|
|
|
|
|
+ argc -= 2;
|
|
|
|
|
+ argv += 2;
|
|
|
|
|
+ } else if (!strncmp(argv[1], "-n", 2)) {
|
|
|
|
|
+ total_nodes = strtoul(argv[2], NULL, 10);
|
|
|
|
|
+ argc -= 2;
|
|
|
|
|
+ argv += 2;
|
|
|
|
|
+ } else if (!strncmp(argv[1], "-m", 2)) {
|
|
|
|
|
+ GB_mem_per_node = strtoul(argv[2], NULL, 10);
|
|
|
|
|
+ argc -= 2;
|
|
|
|
|
+ argv += 2;
|
|
|
|
|
+ } else if (!strncmp(argv[1], "-r", 2)) {
|
|
|
|
|
+ reps = strtoul(argv[2], NULL, 10);
|
|
|
|
|
+ argc -= 2;
|
|
|
|
|
+ argv += 2;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if (argc < 3 || (argc % 2 == 0)) {
|
|
if (argc < 3 || (argc % 2 == 0)) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- for (int i=1;i<argc;i+=2) {
|
|
|
|
|
- worklist.push_back(Workentry(argv[i], strtoul(argv[i+1], NULL, 10)));
|
|
|
|
|
|
|
+ for (int r=0;r<reps;++r) {
|
|
|
|
|
+ for (int i=1;i<argc;i+=2) {
|
|
|
|
|
+ worklist.push_back(
|
|
|
|
|
+ Workentry(argv[i], strtoul(argv[i+1], NULL, 10)));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
return 0;
|