From 4f9393d0298bf99ff4eda2a72d6b31ffa4b666f2 Mon Sep 17 00:00:00 2001 From: craig-warren Date: Tue, 7 Apr 2020 09:33:30 +0100 Subject: [PATCH] GPU info for MPI. --- gprMax/contexts.py | 10 ++++------ gprMax/model_build_run.py | 5 +++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/gprMax/contexts.py b/gprMax/contexts.py index b86d2a45..0661fa2d 100644 --- a/gprMax/contexts.py +++ b/gprMax/contexts.py @@ -18,7 +18,6 @@ import datetime import logging -import platform import sys import gprMax.config as config @@ -92,12 +91,12 @@ class Context: """Print information about any NVIDIA CUDA GPUs detected.""" gpus_info = [] for gpu in config.sim_config.cuda['gpus']: - gpus_info.append(f'{gpu.deviceID} {gpu.pcibusID} - {gpu.name}, {human_size(gpu.totalmem, a_kilobyte_is_1024_bytes=True)}') + gpus_info.append(f'{gpu.deviceID} - {gpu.name}, {human_size(gpu.totalmem, a_kilobyte_is_1024_bytes=True)}') logger.basic(f"GPU resources: {' | '.join(gpus_info)}") def print_time_report(self): """Print the total simulation time based on context.""" - s = f"\n=== Simulation on {config.sim_config.hostinfo['hostname']} completed in [HH:MM:SS]: {datetime.timedelta(seconds=self.tsimend - self.tsimstart)}" + s = f"\n=== Simulation completed in [HH:MM:SS]: {datetime.timedelta(seconds=self.tsimend - self.tsimstart)}" logger.basic(f"{s} {'=' * (get_terminal_width() - 1 - len(s))}\n") @@ -124,8 +123,7 @@ class MPIContext(Context): model_config = config.ModelConfig() # Set GPU deviceID according to worker rank if config.sim_config.general['cuda']: - gpu = config.sim_config.cuda['gpus'][self.rank - 1] - model_config.cuda = {'gpu': gpu, + model_config.cuda = {'gpu': config.sim_config.cuda['gpus'][self.rank - 1], 'snapsgpu2cpu': False} config.model_configs = model_config @@ -147,7 +145,7 @@ class MPIContext(Context): if config.sim_config.general['cuda']: self.print_gpu_info() sys.stdout.flush() - logger.basic(platform.node()) + # Contruct MPIExecutor executor = self.MPIExecutor(self._run_model, comm=self.comm) diff --git a/gprMax/model_build_run.py b/gprMax/model_build_run.py index 07ca8695..2b572685 100644 --- a/gprMax/model_build_run.py +++ b/gprMax/model_build_run.py @@ -20,6 +20,7 @@ import datetime import itertools import logging from pathlib import Path +import platform import psutil import sys @@ -260,12 +261,12 @@ class ModelBuildRun: # Check number of OpenMP threads if config.sim_config.general['cpu']: - logger.basic(f'CPU (OpenMP) threads for solving: {config.get_model_config().ompthreads}\n') + logger.basic(f'CPU solver with {config.get_model_config().ompthreads} OpenMP threads on {platform.node()}\n') if config.get_model_config().ompthreads > config.sim_config.hostinfo['physicalcores']: logger.warning(Fore.RED + f"You have specified more threads ({config.get_model_config().ompthreads}) than available physical CPU cores ({config.sim_config.hostinfo['physicalcores']}). This may lead to degraded performance." + Style.RESET_ALL) # Print information about any GPU in use elif config.sim_config.general['cuda']: - logger.basic(f"GPU for solving: {config.get_model_config().cuda['gpu'].deviceID} - {config.get_model_config().cuda['gpu'].name}\n") + logger.basic(f"GPU solver with device {config.get_model_config().cuda['gpu'].deviceID} - {config.get_model_config().cuda['gpu'].name} on {platform.node()}\n") # Prepare iterator if config.sim_config.general['progressbars']: