diff options
author | Thomas White <taw@physics.org> | 2022-11-16 11:57:13 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2023-05-02 11:22:29 +0200 |
commit | 7260e3a2710296665dbceb427e447da38175513f (patch) | |
tree | c2d71c750755c597d217be2e269e386130a89909 /src/indexamajig.c | |
parent | d5289850ddee26f603b1fddbc652f6d609905927 (diff) |
indexamajig: Add --cpu-pin
Similar code was stripped out 3.5 years ago by
4f4e5d05269eee6b192c271f2f9730a1ad3a4fbd. However, it seems there are
still systems where it improves performance a lot.
Diffstat (limited to 'src/indexamajig.c')
-rw-r--r-- | src/indexamajig.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/indexamajig.c b/src/indexamajig.c index 2f431636..fa153bf5 100644 --- a/src/indexamajig.c +++ b/src/indexamajig.c @@ -9,7 +9,7 @@ * Copyright © 2012 Lorenzo Galli * * Authors: - * 2010-2021 Thomas White <taw@physics.org> + * 2010-2022 Thomas White <taw@physics.org> * 2011 Richard Kirian * 2012 Lorenzo Galli * 2012 Chunhong Yoon @@ -97,6 +97,7 @@ struct indexamajig_arguments char **copy_headers; int n_copy_headers; char *harvest_file; + int cpu_pin; struct taketwo_options **taketwo_opts_ptr; struct felix_options **felix_opts_ptr; @@ -445,6 +446,10 @@ static error_t parse_arg(int key, char *arg, struct argp_state *state) args->asapo_params.wait_for_stream = 1; break; + case 222 : + args->cpu_pin = 1; + break; + /* ---------- Peak search ---------- */ case 't' : @@ -879,6 +884,7 @@ int main(int argc, char *argv[]) args.asapo_params.source = NULL; args.asapo_params.stream = NULL; args.asapo_params.wait_for_stream = 0; + args.cpu_pin = 0; args.serial_start = 1; args.if_peaks = 1; args.if_multi = 0; @@ -1000,6 +1006,7 @@ int main(int argc, char *argv[]) {"asapo-stream", 220, "str", OPTION_NO_USAGE, "ASAP::O stream name"}, {"asapo-wait-for-stream", 221, NULL, OPTION_NO_USAGE, "Wait for ASAP::O stream to appear"}, + {"cpu-pin", 222, NULL, OPTION_NO_USAGE, "Pin worker processes to CPUs"}, {NULL, 0, 0, OPTION_DOC, "Peak search options:", 3}, {"peaks", 301, "method", 0, "Peak search method. Default: zaef"}, @@ -1394,7 +1401,7 @@ int main(int argc, char *argv[]) r = create_sandbox(&args.iargs, args.n_proc, args.prefix, args.basename, fh, st, tmpdir, args.serial_start, &args.zmq_params, &args.asapo_params, - timeout, args.profile); + timeout, args.profile, args.cpu_pin); if ( pf8_data != NULL ) free_pf8_private_data(pf8_data); if ( detgeom != NULL) detgeom_free(detgeom); |