Skip to content
Snippets Groups Projects
Commit e7d778a1 authored by Rasmus Ringdahl's avatar Rasmus Ringdahl
Browse files

Merge branch 'dev' into 'main'

refactor: remove unwanted code

See merge request !5
parents 8deba570 01dc1f06
No related branches found
No related tags found
1 merge request!5refactor: remove unwanted code
from datetime import datetime
from multiprocessing import Pool
import json
import logging
import os
import sys
import time
logger = logging.getLogger(__name__)
def sleep(input):
time.sleep(input[1])
logger.info('Task %d done.',input[0])
def main(filename: str):
# Read environment variables.
NUMBER_OF_CORES = os.environ.get('SLURM_CPUS_PER_TASK','Unknown')
if NUMBER_OF_CORES in 'Unknown':
logger.error('Unkown number of cores, exiting.')
return
NUMBER_OF_CORES = int(NUMBER_OF_CORES)
logger.info('Running program with %d cores.',NUMBER_OF_CORES)
# Reading configuration file and create a list of tasks
# This represents the reading of parameters and calculations
logger.info('Reading configuration from %s.',filename)
with open(filename, 'r') as file:
data = json.load(file)
tasks = []
total_time = 0
for i in range(len(data['sleep'])):
time = data['sleep'][i]
tasks.append((i, time))
total_time = total_time + time
# Creating a multiprocessing pool to perform the tasks
pool = Pool(processes=NUMBER_OF_CORES)
# Running submitting the tasks to the worker pool
tic = datetime.now()
logger.info('Submitting tasks to pool.')
pool.map(sleep, tasks)
toc = datetime.now()
logger.info('All tasks are done, took %d seconds, compared to %d seconds with single thread.',
(toc-tic).seconds, total_time)
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
filename = sys.argv[1]
main(filename)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment