From 931b0ce94d133206a374e51e6b5be3c856532d71 Mon Sep 17 00:00:00 2001 From: Vakho Tsulaia <vakhtang.tsulaia@cern.ch> Date: Fri, 14 Feb 2025 06:32:46 +0100 Subject: [PATCH] AthenaMPConfig: added support for input-less jobs (e.g., hello world) --- Control/AthenaMP/python/AthenaMPConfig.py | 59 ++++++++++++----------- 1 file changed, 31 insertions(+), 28 deletions(-) diff --git a/Control/AthenaMP/python/AthenaMPConfig.py b/Control/AthenaMP/python/AthenaMPConfig.py index fc2752c02a7..efb0a563dea 100644 --- a/Control/AthenaMP/python/AthenaMPConfig.py +++ b/Control/AthenaMP/python/AthenaMPConfig.py @@ -181,37 +181,40 @@ def getChunkSize(flags) -> int: chunk_size = flags.MP.ChunkSize msg.info('Chunk size set to %i', chunk_size) else: - md = GetFileMD(flags.Input.Files) - #Don't use auto flush for shared reader - if flags.MP.UseSharedReader: - msg.info('Shared Reader in use, chunk_size set to default (%i)', chunk_size) - #Use auto flush only if file is compressed with LZMA, else use default chunk_size - elif flags.MP.ChunkSize == -1: - if md.get('file_comp_alg',-1) == 2: - chunk_size = md.get('auto_flush',-1) - msg.info('Chunk size set to auto flush (%i)', chunk_size) - else: - msg.info('LZMA algorithm not in use, chunk_size set to default (%i)', chunk_size) - #Use auto flush only if file is compressed with LZMA or ZLIB, else use default chunk_size - elif flags.MP.ChunkSize == -2: - if md.get('file_comp_alg',-1) in [1,2]: - chunk_size = md.get('auto_flush',-1) - msg.info('Chunk size set to auto flush (%i)', chunk_size) - else: - msg.info('LZMA nor ZLIB in use, chunk_size set to default (%i)', chunk_size) - #Use auto flush only if file is compressed with LZMA, ZLIB or LZ4, else use default chunk_size - elif flags.MP.ChunkSize == -3: - if md.get('file_comp_alg',-1) in [1,2,4]: + if '_ATHENA_GENERIC_INPUTFILE_NAME_' in flags.Input.Files: + msg.info('Running an input-less job. Setting Chunk Size to 1') + else: + md = GetFileMD(flags.Input.Files) + #Don't use auto flush for shared reader + if flags.MP.UseSharedReader: + msg.info('Shared Reader in use, chunk_size set to default (%i)', chunk_size) + #Use auto flush only if file is compressed with LZMA, else use default chunk_size + elif flags.MP.ChunkSize == -1: + if md.get('file_comp_alg',-1) == 2: + chunk_size = md.get('auto_flush',-1) + msg.info('Chunk size set to auto flush (%i)', chunk_size) + else: + msg.info('LZMA algorithm not in use, chunk_size set to default (%i)', chunk_size) + #Use auto flush only if file is compressed with LZMA or ZLIB, else use default chunk_size + elif flags.MP.ChunkSize == -2: + if md.get('file_comp_alg',-1) in [1,2]: + chunk_size = md.get('auto_flush',-1) + msg.info('Chunk size set to auto flush (%i)', chunk_size) + else: + msg.info('LZMA nor ZLIB in use, chunk_size set to default (%i)', chunk_size) + #Use auto flush only if file is compressed with LZMA, ZLIB or LZ4, else use default chunk_size + elif flags.MP.ChunkSize == -3: + if md.get('file_comp_alg',-1) in [1,2,4]: + chunk_size = md.get('auto_flush',-1) + msg.info('Chunk size set to auto flush (%i)', chunk_size) + else: + msg.info('LZMA, ZLIB nor LZ4 in use, chunk_size set to (%i)', chunk_size) + #Use auto flush value for chunk_size, regardless of compression algorithm + elif flags.MP.ChunkSize <= -4: chunk_size = md.get('auto_flush',-1) msg.info('Chunk size set to auto flush (%i)', chunk_size) else: - msg.info('LZMA, ZLIB nor LZ4 in use, chunk_size set to (%i)', chunk_size) - #Use auto flush value for chunk_size, regardless of compression algorithm - elif flags.MP.ChunkSize <= -4: - chunk_size = md.get('auto_flush',-1) - msg.info('Chunk size set to auto flush (%i)', chunk_size) - else: - msg.warning('Invalid ChunkSize, Chunk Size set to default (%i)', chunk_size) + msg.warning('Invalid ChunkSize, Chunk Size set to default (%i)', chunk_size) return chunk_size -- GitLab