diff options
author | Thomas White <taw@physics.org> | 2022-04-29 16:13:10 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2022-05-03 12:45:34 +0200 |
commit | cdb51dbec109ccde45c8a4ceb29ea925d01e2920 (patch) | |
tree | 050c15bce49627dba7bb2a04e1df43ba72a6f002 | |
parent | 9ddf2feeffd29bf6bff376413832cd35e5cb3594 (diff) |
Strip out time-accounts
-rw-r--r-- | libcrystfel/CMakeLists.txt | 1 | ||||
-rw-r--r-- | libcrystfel/meson.build | 4 | ||||
-rw-r--r-- | libcrystfel/src/image.c | 40 | ||||
-rw-r--r-- | libcrystfel/src/image.h | 10 | ||||
-rw-r--r-- | libcrystfel/src/time-accounts.c | 265 | ||||
-rw-r--r-- | libcrystfel/src/time-accounts.h | 75 | ||||
-rw-r--r-- | src/im-sandbox.c | 32 | ||||
-rw-r--r-- | src/process_image.c | 25 | ||||
-rw-r--r-- | src/process_image.h | 4 |
9 files changed, 20 insertions, 436 deletions
diff --git a/libcrystfel/CMakeLists.txt b/libcrystfel/CMakeLists.txt index 9aca17d8..69668a8c 100644 --- a/libcrystfel/CMakeLists.txt +++ b/libcrystfel/CMakeLists.txt @@ -62,7 +62,6 @@ set(LIBCRYSTFEL_SOURCES src/image-hdf5.c src/fom.c src/image-msgpack.c - src/time-accounts.c ${BISON_symopp_OUTPUTS} ${FLEX_symopl_OUTPUTS} src/indexers/dirax.c diff --git a/libcrystfel/meson.build b/libcrystfel/meson.build index 5f6a32e5..5b10ce14 100644 --- a/libcrystfel/meson.build +++ b/libcrystfel/meson.build @@ -121,7 +121,6 @@ libcrystfel_sources = ['src/image.c', 'src/colscale.c', 'src/detgeom.c', 'src/fom.c', - 'src/time-accounts.c', 'src/image-cbf.c', 'src/image-hdf5.c', 'src/image-msgpack.c', @@ -180,8 +179,7 @@ install_headers(['src/reflist.h', 'src/datatemplate.h', 'src/colscale.h', 'src/detgeom.h', - 'src/fom.h', - 'src/time-accounts.h'], + 'src/fom.h'], subdir: 'crystfel') # API documentation (Doxygen) diff --git a/libcrystfel/src/image.c b/libcrystfel/src/image.c index 7b86588d..7ad8d428 100644 --- a/libcrystfel/src/image.c +++ b/libcrystfel/src/image.c @@ -42,7 +42,6 @@ #include "image-hdf5.h" #include "image-cbf.h" #include "image-msgpack.h" -#include "time-accounts.h" #include "datatemplate.h" #include "datatemplate_priv.h" @@ -1287,35 +1286,28 @@ struct image *image_create_for_simulation(const DataTemplate *dtempl) static int do_image_read(struct image *image, const DataTemplate *dtempl, - int no_image_data, int no_mask_data, - TimeAccounts *taccs) + int no_image_data, int no_mask_data) { int i; /* Load the image data */ - time_accounts_set(taccs, TACC_IMAGE_DATA); if ( !no_image_data ) { if ( image_read_image_data(image, dtempl) ) return 1; } else { if ( image_set_zero_data(image, dtempl) ) return 1; } - time_accounts_set(taccs, TACC_IMAGE_PARAMS); if ( set_image_parameters(image, dtempl) ) { ERROR("Failed to read image parameters\n"); return 1; } - time_accounts_set(taccs, TACC_CREATE_DETGEOM); if ( create_detgeom(image, dtempl) ) { ERROR("Failed to read geometry information\n"); return 1; } - time_accounts_set(taccs, TACC_CREATE_BADMAP); if ( create_badmap(image, dtempl, no_mask_data) ) return 1; - time_accounts_set(taccs, TACC_CREATE_SATMAP); if ( create_satmap(image, dtempl) ) return 1; - time_accounts_set(taccs, TACC_CACHE_HEADERS); for ( i=0; i<dtempl->n_headers_to_copy; i++ ) { read_header_to_cache(image, dtempl->headers_to_copy[i]); } @@ -1324,12 +1316,11 @@ static int do_image_read(struct image *image, const DataTemplate *dtempl, } -struct image *image_read_with_time_accounting(const DataTemplate *dtempl, - const char *filename, - const char *event, - int no_image_data, - int no_mask_data, - TimeAccounts *taccs) +struct image *image_read(const DataTemplate *dtempl, + const char *filename, + const char *event, + int no_image_data, + int no_mask_data) { struct image *image; @@ -1355,7 +1346,7 @@ struct image *image_read_with_time_accounting(const DataTemplate *dtempl, image->data_source_type = file_type(image->filename); - if ( do_image_read(image, dtempl, no_image_data, no_mask_data, taccs) ) { + if ( do_image_read(image, dtempl, no_image_data, no_mask_data) ) { image_free(image); return NULL; } @@ -1364,26 +1355,13 @@ struct image *image_read_with_time_accounting(const DataTemplate *dtempl, } -struct image *image_read(const DataTemplate *dtempl, - const char *filename, - const char *event, - int no_image_data, - int no_mask_data) -{ - return image_read_with_time_accounting(dtempl, filename, event, - no_image_data, no_mask_data, - NULL); -} - - struct image *image_read_data_block(const DataTemplate *dtempl, void *data_block, size_t data_block_size, DataSourceType type, int serial, int no_image_data, - int no_mask_data, - TimeAccounts *taccs) + int no_mask_data) { struct image *image; char tmp[64]; @@ -1407,7 +1385,7 @@ struct image *image_read_data_block(const DataTemplate *dtempl, image->data_source_type = type; - if ( do_image_read(image, dtempl, no_image_data, no_mask_data, taccs) ) { + if ( do_image_read(image, dtempl, no_image_data, no_mask_data) ) { image_free(image); ERROR("Failed to load image\n"); return NULL; diff --git a/libcrystfel/src/image.h b/libcrystfel/src/image.h index 78fd01cd..3746e115 100644 --- a/libcrystfel/src/image.h +++ b/libcrystfel/src/image.h @@ -45,7 +45,6 @@ struct image; #include "index.h" #include "spectrum.h" #include "datatemplate.h" -#include "time-accounts.h" /** * \file image.h @@ -221,12 +220,6 @@ extern struct image *image_read(const DataTemplate *dtempl, const char *event, int no_image_data, int no_mask_data); -extern struct image *image_read_with_time_accounting(const DataTemplate *dtempl, - const char *filename, - const char *event, - int no_image_data, - int no_mask_data, - TimeAccounts *taccs); extern struct image *image_create_for_simulation(const DataTemplate *dtempl); extern struct image *image_read_data_block(const DataTemplate *dtempl, @@ -235,8 +228,7 @@ extern struct image *image_read_data_block(const DataTemplate *dtempl, DataSourceType type, int serial, int no_image_data, - int no_mask_data, - TimeAccounts *taccs); + int no_mask_data); extern void image_free(struct image *image); extern int image_read_header_float(struct image *image, const char *from, diff --git a/libcrystfel/src/time-accounts.c b/libcrystfel/src/time-accounts.c deleted file mode 100644 index df2ccbb2..00000000 --- a/libcrystfel/src/time-accounts.c +++ /dev/null @@ -1,265 +0,0 @@ -/* - * time-accounts.c - * - * Simple profiling according to wall clock time - * - * Copyright © 2016-2021 Deutsches Elektronen-Synchrotron DESY, - * a research centre of the Helmholtz Association. - * - * Authors: - * 2016-2018 Thomas White <taw@physics.org> - * - * This file is part of CrystFEL. - * - * CrystFEL is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * CrystFEL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with CrystFEL. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <libcrystfel-config.h> - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> -#include <time.h> -#include <assert.h> - -#include "time-accounts.h" - -#define MAX_ACCOUNTS 256 - -#ifndef CLOCK_MONOTONIC_RAW -#define CLOCK_MONOTONIC_RAW (CLOCK_MONOTONIC) -#endif - -struct _timeaccounts -{ - enum timeaccount accs[MAX_ACCOUNTS]; - time_t sec[MAX_ACCOUNTS]; - long nsec[MAX_ACCOUNTS]; - int n_accs; - enum timeaccount cur_acc; - time_t cur_sec; - long cur_nsec; -}; - - -TimeAccounts *time_accounts_init() -{ - TimeAccounts *accs = malloc(sizeof(struct _timeaccounts)); - if ( accs == NULL ) return NULL; - - accs->n_accs = 0; - accs->cur_acc = TACC_NOTHING; - -#ifndef HAVE_CLOCK_GETTIME - printf("Profiling disabled because clock_gettime is not available\n"); -#endif - - return accs; -} - - -void time_accounts_free(TimeAccounts *accs) -{ - free(accs); -} - - -static int find_account(TimeAccounts *accs, enum timeaccount acc) -{ - int i; - - for ( i=0; i<accs->n_accs; i++ ) { - if ( accs->accs[i] == acc ) return i; - } - - if ( i == MAX_ACCOUNTS ) { - static int warned_toomany = 0; - if ( !warned_toomany ) printf("Too many time accounts used!\n"); - warned_toomany = 1; - return MAX_ACCOUNTS; - } - - /* This is the first time the account is used */ - accs->accs[i] = acc; - accs->sec[i] = 0; - accs->nsec[i] = 0; - accs->n_accs++; - return i; -} - - -void time_accounts_reset(TimeAccounts *accs) -{ - accs->n_accs = 0; - accs->cur_acc = TACC_NOTHING; -} - - -#ifdef HAVE_CLOCK_GETTIME - -void time_accounts_set(TimeAccounts *accs, enum timeaccount new_acc) -{ - struct timespec tp; - - if ( accs == NULL ) return; - - clock_gettime(CLOCK_MONOTONIC_RAW, &tp); - - /* Record time used on the previous account */ - if ( accs->cur_acc != TACC_NOTHING ) { - int i = find_account(accs, accs->cur_acc); - if ( i == MAX_ACCOUNTS ) { - printf("Too many time accounts!\n"); - } else { - - time_t sec = tp.tv_sec - accs->cur_sec; - long nsec = tp.tv_nsec - accs->cur_nsec; - - if ( nsec < 0 ) { - sec -= 1; - nsec += 1000000000; - } - accs->sec[i] += sec; - accs->nsec[i] += nsec; - - while ( accs->nsec[i] > 1000000000 ) { - accs->sec[i] += 1; - accs->nsec[i] -= 1000000000; - } - - } - } - - accs->cur_acc = new_acc; - accs->cur_sec = tp.tv_sec; - accs->cur_nsec = tp.tv_nsec; -} - -#else - -void time_accounts_set(TimeAccounts *accs, enum timeaccount new_acc) -{ - if ( accs == NULL ) return; - - /* Record time used on the previous account */ - if ( accs->cur_acc != TACC_NOTHING ) { - int i = find_account(accs, accs->cur_acc); - if ( i == MAX_ACCOUNTS ) { - printf("Too many time accounts!\n"); - } else { - /* Do nothing because we have no timer */ - } - } - - accs->cur_acc = new_acc; - accs->cur_sec = 0; - accs->cur_nsec = 0; -} - -#endif - -static const char *taccname(enum timeaccount acc) -{ - switch ( acc ) { - case TACC_NOTHING : return "Nothing"; - case TACC_SELECT : return "select()"; - case TACC_STREAMREAD : return "Stream read"; - case TACC_SIGNALS : return "Checking signals"; - case TACC_QUEUETOPUP : return "Topping up queue"; - case TACC_STATUS : return "Printing status"; - case TACC_ENDCHECK : return "Checking end"; - case TACC_WAKEUP : return "Waking up workers"; - case TACC_WAITPID : return "Waiting on workers"; - case TACC_WAITFILE : return "Waiting for image file"; - case TACC_IMAGE_DATA : return "Reading image data"; - case TACC_IMAGE_PARAMS : return "Reading image parameters"; - case TACC_CREATE_DETGEOM : return "Creating detgeom"; - case TACC_CREATE_BADMAP : return "Creating bad pixel map"; - case TACC_CREATE_SATMAP : return "Creating saturation map"; - case TACC_CACHE_HEADERS : return "Caching image headers"; - case TACC_FILTER : return "Image filters"; - case TACC_RESRANGE : return "Resolution range"; - case TACC_PEAKSEARCH : return "Peak search"; - case TACC_INDEXING : return "Indexing"; - case TACC_PREDPARAMS : return "Prediction parameters"; - case TACC_INTEGRATION : return "Integration"; - case TACC_TOTALS : return "Crystal totals"; - case TACC_WRITESTREAM : return "Writing stream"; - case TACC_CLEANUP : return "Image cleanup"; - case TACC_EVENTWAIT : return "Waiting for event"; - case TACC_FINALCLEANUP : return "Final cleanup"; - default : return "Unknown"; - } -} - - -static const char *taccname_short(enum timeaccount acc) -{ - switch ( acc ) { - case TACC_NOTHING : return "?????"; - case TACC_SELECT : return "selct"; - case TACC_STREAMREAD : return "sread"; - case TACC_SIGNALS : return "signs"; - case TACC_QUEUETOPUP : return "qfill"; - case TACC_STATUS : return "print"; - case TACC_ENDCHECK : return "endch"; - case TACC_WAKEUP : return "wakew"; - case TACC_WAITPID : return "waitw"; - case TACC_WAITFILE : return "wfile"; - case TACC_IMAGE_DATA : return "idata"; - case TACC_IMAGE_PARAMS : return "iprms"; - case TACC_CREATE_DETGEOM : return "dgeom"; - case TACC_CREATE_BADMAP : return "bdmap"; - case TACC_CREATE_SATMAP : return "stmap"; - case TACC_CACHE_HEADERS : return "headc"; - case TACC_FILTER : return "filtr"; - case TACC_RESRANGE : return "rrnge"; - case TACC_PEAKSEARCH : return "peaks"; - case TACC_INDEXING : return "index"; - case TACC_PREDPARAMS : return "predp"; - case TACC_INTEGRATION : return "integ"; - case TACC_TOTALS : return "ctotl"; - case TACC_WRITESTREAM : return "swrte"; - case TACC_CLEANUP : return "clean"; - case TACC_EVENTWAIT : return "wevnt"; - case TACC_FINALCLEANUP : return "final"; - default : return "unkwn"; - } -} - - -void time_accounts_print_short(TimeAccounts *accs) -{ - int i; - time_accounts_set(accs, accs->cur_acc); - for ( i=0; i<accs->n_accs; i++ ) { - printf("%s: %.3f ", taccname_short(accs->accs[i]), - (double)accs->sec[i] + accs->nsec[i]/1e9); - } - printf("\n"); - fflush(stdout); -} - - -void time_accounts_print(TimeAccounts *accs) -{ - int i; - printf("Wall clock time budget:\n"); - printf("-----------------------\n"); - for ( i=0; i<accs->n_accs; i++ ) { - printf("%25s: %10lli sec %10li nsec\n", taccname(accs->accs[i]), - (long long)accs->sec[i], accs->nsec[i]); - } -} diff --git a/libcrystfel/src/time-accounts.h b/libcrystfel/src/time-accounts.h deleted file mode 100644 index 56b44fa6..00000000 --- a/libcrystfel/src/time-accounts.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * time-accounts.h - * - * Simple profiling according to wall clock time - * - * Copyright © 2016-2021 Deutsches Elektronen-Synchrotron DESY, - * a research centre of the Helmholtz Association. - * - * Authors: - * 2016-2018 Thomas White <taw@physics.org> - * - * This file is part of CrystFEL. - * - * CrystFEL is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * CrystFEL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with CrystFEL. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#ifndef TIME_ACCOUNTS_H -#define TIME_ACCOUNTS_H - -enum timeaccount -{ - TACC_NOTHING, - TACC_STREAMREAD, - TACC_SELECT, - TACC_SIGNALS, - TACC_QUEUETOPUP, - TACC_STATUS, - TACC_ENDCHECK, - TACC_WAKEUP, - TACC_WAITPID, - TACC_WAITFILE, - TACC_IMAGE_DATA, - TACC_IMAGE_PARAMS, - TACC_CREATE_DETGEOM, - TACC_CREATE_BADMAP, - TACC_CREATE_SATMAP, - TACC_CACHE_HEADERS, - TACC_FILTER, - TACC_RESRANGE, - TACC_PEAKSEARCH, - TACC_INDEXING, - TACC_PREDPARAMS, - TACC_INTEGRATION, - TACC_TOTALS, - TACC_WRITESTREAM, - TACC_CLEANUP, - TACC_EVENTWAIT, - TACC_FINALCLEANUP, -}; - -typedef struct _timeaccounts TimeAccounts; - -extern TimeAccounts *time_accounts_init(void); -extern void time_accounts_free(TimeAccounts *accs); - -extern void time_accounts_set(TimeAccounts *accs, enum timeaccount new_acc); - -extern void time_accounts_reset(TimeAccounts *accs); - -extern void time_accounts_print_short(TimeAccounts *accs); -extern void time_accounts_print(TimeAccounts *accs); - -#endif /* TIME_ACCOUNTS_H */ diff --git a/src/im-sandbox.c b/src/im-sandbox.c index 501efb45..ad22d96f 100644 --- a/src/im-sandbox.c +++ b/src/im-sandbox.c @@ -60,7 +60,6 @@ #include "im-sandbox.h" #include "process_image.h" -#include "time-accounts.h" #include "im-zmq.h" @@ -345,7 +344,6 @@ static int run_work(const struct index_args *iargs, Stream *st, while ( !allDone ) { - TimeAccounts *taccs; struct pattern_args pargs; int ser; char *line; @@ -355,10 +353,7 @@ static int run_work(const struct index_args *iargs, Stream *st, char *ser_str = NULL; int ok = 1; - taccs = time_accounts_init(); - /* Wait until an event is ready */ - time_accounts_set(taccs, TACC_EVENTWAIT); sb->shared->pings[cookie]++; set_last_task(sb->shared->last_task[cookie], "wait_event"); if ( sem_wait(sb->queue_sem) != 0 ) { @@ -460,10 +455,8 @@ static int run_work(const struct index_args *iargs, Stream *st, if ( sb->profile ) { pthread_mutex_lock(&sb->shared->term_lock); - time_accounts_print_short(taccs); pthread_mutex_unlock(&sb->shared->term_lock); } - time_accounts_free(taccs); } im_zmq_shutdown(zmqstuff); @@ -576,7 +569,7 @@ static void remove_pipe(struct sandbox *sb, int d) } -static void try_read(struct sandbox *sb, TimeAccounts *taccs) +static void try_read(struct sandbox *sb) { int r, i; struct timeval tv; @@ -584,8 +577,6 @@ static void try_read(struct sandbox *sb, TimeAccounts *taccs) int fdmax; const int ofd = stream_get_fd(sb->stream); - time_accounts_set(taccs, TACC_SELECT); - tv.tv_sec = 0; tv.tv_usec = 500000; @@ -619,7 +610,6 @@ static void try_read(struct sandbox *sb, TimeAccounts *taccs) /* If the chunk cannot be read, assume the connection * is broken and that the process will die soon. */ - time_accounts_set(taccs, TACC_STREAMREAD); if ( pump_chunk(sb->fhs[i], ofd) ) { remove_pipe(sb, i); } @@ -1066,7 +1056,6 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, struct sigaction sa; int r; int allDone = 0; - TimeAccounts *taccs; struct get_pattern_ctx gpctx; if ( n_proc > MAX_NUM_WORKERS ) { @@ -1188,22 +1177,18 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, return 0; } - taccs = time_accounts_init(); - do { /* Check for stream output from workers */ - try_read(sb, taccs); + try_read(sb); /* Check for interrupt or zombies */ - time_accounts_set(taccs, TACC_SIGNALS); check_signals(sb, semname_q, 1); /* Check for hung workers */ check_hung_workers(sb); /* Top up the queue if necessary */ - time_accounts_set(taccs, TACC_QUEUETOPUP); pthread_mutex_lock(&sb->shared->queue_lock); if ( !sb->shared->no_more && (sb->shared->n_events < QUEUE_SIZE/2) ) { if ( fill_queue(&gpctx, sb) ) sb->shared->no_more = 1; @@ -1211,11 +1196,9 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, pthread_mutex_unlock(&sb->shared->queue_lock); /* Update progress */ - time_accounts_set(taccs, TACC_STATUS); try_status(sb, 0); /* Have all the events been swallowed? */ - time_accounts_set(taccs, TACC_ENDCHECK); pthread_mutex_lock(&sb->shared->queue_lock); if ( sb->shared->no_more && (sb->shared->n_events == 0) ) allDone = 1; if ( sb->shared->should_shutdown ) { @@ -1234,7 +1217,6 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, /* Indicate to the workers that we are finished, and wake them up one * last time */ - time_accounts_set(taccs, TACC_WAKEUP); STATUS("Waiting for the last patterns to be processed...\n"); pthread_mutex_lock(&sb->shared->queue_lock); sb->shared->no_more = 1; @@ -1244,29 +1226,21 @@ int create_sandbox(struct index_args *iargs, int n_proc, char *prefix, } for ( i=0; i<n_proc; i++ ) { int status; - time_accounts_set(taccs, TACC_WAITPID); while ( waitpid(sb->pids[i], &status, WNOHANG) == 0 ) { - time_accounts_set(taccs, TACC_STREAMREAD); - try_read(sb, taccs); + try_read(sb); - time_accounts_set(taccs, TACC_SIGNALS); check_signals(sb, semname_q, 0); check_hung_workers(sb); - time_accounts_set(taccs, TACC_STATUS); try_status(sb, 0); - time_accounts_set(taccs, TACC_WAITPID); } /* If this worker died and got waited by the zombie handler, * waitpid() returns -1 and the loop still exits. */ } - if ( profile ) time_accounts_print(taccs); - time_accounts_free(taccs); - sem_unlink(semname_q); for ( i=0; i<sb->n_read; i++ ) { diff --git a/src/process_image.c b/src/process_image.c index 20d6c9c1..46c5f729 100644 --- a/src/process_image.c +++ b/src/process_image.c @@ -50,7 +50,6 @@ #include <integration.h> #include <detgeom.h> #include <image-msgpack.h> -#include <time-accounts.h> #include "process_image.h" #include "predict-refine.h" @@ -103,7 +102,6 @@ static struct image *file_wait_open_read(const char *filename, const char *event, DataTemplate *dtempl, struct sb_shm *sb_shared, - TimeAccounts *taccs, char *last_task, signed int wait_for_file, int cookie, @@ -116,7 +114,6 @@ static struct image *file_wait_open_read(const char *filename, int r; struct image *image; - time_accounts_set(taccs, TACC_WAITFILE); set_last_task(last_task, "wait for file"); do { @@ -150,13 +147,11 @@ static struct image *file_wait_open_read(const char *filename, do { - time_accounts_set(taccs, TACC_IMAGE_DATA); set_last_task(last_task, "read file"); sb_shared->pings[cookie]++; - image = image_read_with_time_accounting(dtempl, filename, event, - no_image_data, no_mask_data, - taccs); + image = image_read(dtempl, filename, event, + no_image_data, no_mask_data); if ( image == NULL ) { if ( wait_for_file && !read_retry_done ) { read_retry_done = 1; @@ -178,7 +173,7 @@ static struct image *file_wait_open_read(const char *filename, void process_image(const struct index_args *iargs, struct pattern_args *pargs, Stream *st, int cookie, const char *tmpdir, - int serial, struct sb_shm *sb_shared, TimeAccounts *taccs, + int serial, struct sb_shm *sb_shared, char *last_task) { struct image *image; @@ -190,7 +185,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, int any_crystals; if ( pargs->zmq_data != NULL ) { - time_accounts_set(taccs, TACC_IMAGE_DATA); set_last_task(last_task, "unpacking messagepack object"); image = image_read_data_block(iargs->dtempl, pargs->zmq_data, @@ -198,13 +192,12 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, iargs->data_format, serial, iargs->no_image_data, - iargs->no_mask_data, - taccs); + iargs->no_mask_data); if ( image == NULL ) return; } else { image = file_wait_open_read(pargs->filename, pargs->event, iargs->dtempl, - sb_shared, taccs, last_task, + sb_shared, last_task, iargs->wait_for_file, cookie, iargs->no_image_data, @@ -222,7 +215,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, image->serial = serial; /* Take snapshot of image before applying horrible noise filters */ - time_accounts_set(taccs, TACC_FILTER); set_last_task(last_task, "image filter"); sb_shared->pings[cookie]++; @@ -240,12 +232,10 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, filter_noise(image); } - time_accounts_set(taccs, TACC_RESRANGE); set_last_task(last_task, "resolution range"); sb_shared->pings[cookie]++; mark_resolution_range_as_bad(image, iargs->highres, +INFINITY); - time_accounts_set(taccs, TACC_PEAKSEARCH); sb_shared->pings[cookie]++; switch ( iargs->peaks ) { @@ -363,7 +353,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, image->hit = 1; /* Index the pattern */ - time_accounts_set(taccs, TACC_INDEXING); set_last_task(last_task, "indexing"); index_pattern_3(image, iargs->ipriv, &sb_shared->pings[cookie], last_task); @@ -376,7 +365,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, free(rn); /* Set beam/crystal parameters */ - time_accounts_set(taccs, TACC_PREDPARAMS); set_last_task(last_task, "prediction params"); if ( iargs->fix_profile_r >= 0.0 ) { for ( i=0; i<image->n_crystals; i++ ) { @@ -400,7 +388,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, } /* Integrate! */ - time_accounts_set(taccs, TACC_INTEGRATION); set_last_task(last_task, "integration"); sb_shared->pings[cookie]++; integrate_all_5(image, iargs->int_meth, PMODEL_XSPHERE, @@ -411,7 +398,6 @@ void process_image(const struct index_args *iargs, struct pattern_args *pargs, &sb_shared->term_lock, iargs->overpredict); streamwrite: - time_accounts_set(taccs, TACC_WRITESTREAM); set_last_task(last_task, "stream write"); sb_shared->pings[cookie]++; ret = stream_write_chunk(st, image, iargs->stream_flags); @@ -430,7 +416,6 @@ streamwrite: out: /* Count crystals which are still good */ - time_accounts_set(taccs, TACC_TOTALS); set_last_task(last_task, "process_image finalisation"); sb_shared->pings[cookie]++; pthread_mutex_lock(&sb_shared->totals_lock); diff --git a/src/process_image.h b/src/process_image.h index a52dd38a..cbf2713b 100644 --- a/src/process_image.h +++ b/src/process_image.h @@ -43,7 +43,6 @@ struct index_args; #include "integration.h" #include "im-sandbox.h" -#include "time-accounts.h" #include "peaks.h" #include "image.h" @@ -128,8 +127,7 @@ struct pattern_args extern void process_image(const struct index_args *iargs, struct pattern_args *pargs, Stream *st, int cookie, const char *tmpdir, int serial, - struct sb_shm *sb_shared, TimeAccounts *taccs, - char *last_task); + struct sb_shm *sb_shared, char *last_task); #endif /* PROCESS_IMAGE_H */ |