From 7260e3a2710296665dbceb427e447da38175513f Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 16 Nov 2022 11:57:13 +0100 Subject: 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. --- src/indexamajig.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/indexamajig.c') 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 + * 2010-2022 Thomas White * 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); -- cgit v1.2.3