From 9454f2033203921bb594351746ac67f620e304b9 Mon Sep 17 00:00:00 2001 From: Jacob Chow Date: Thu, 6 May 2021 19:26:29 -0700 Subject: [PATCH 1/6] Initial implementation of cpu affinity psutil functionality --- config.yaml.default | 13 ++++++++--- plotmanager/library/parse/configuration.py | 14 +++++++++++- plotmanager/library/utilities/commands.py | 12 +++++++--- plotmanager/library/utilities/jobs.py | 26 +++++++++++++++++++--- stateless-manager.py | 7 +++++- 5 files changed, 61 insertions(+), 11 deletions(-) diff --git a/config.yaml.default b/config.yaml.default index 68fb1b4..7899dd7 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -56,7 +56,7 @@ notifications: notify_pushover: false pushover_user_key: xx pushover_api_key: xx - + # TWILIO notify_twilio: false twilio_account_sid: xxxxx @@ -84,9 +84,16 @@ progress: global: # These are the settings that will be used globally by the plot manager. # - # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than this - # number of plots total over time. + # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than + # this number of plots total over time. + # enable_cpu_affinity: Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see + # improved harvester or node performance when excluding one or two threads for plotting process + # cpu_affinity: List of cpu (or threads) to allocate for plot processes. The default example assumes you have + # a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use + # logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). max_concurrent: 10 + enable_cpu_affinity: false + cpu_affinity: [ 0, 1, 2, 3, 4, 5 ] jobs: diff --git a/plotmanager/library/parse/configuration.py b/plotmanager/library/parse/configuration.py index 8dc1b8c..22f0d8a 100644 --- a/plotmanager/library/parse/configuration.py +++ b/plotmanager/library/parse/configuration.py @@ -85,6 +85,16 @@ def _get_view_settings(config): return view +def _get_cpu_affinity(config): + if 'global' not in config: + raise InvalidYAMLConfigException('Failed to find global parameter in the YAML.') + if 'enable_cpu_affinity' not in config['global']: + raise InvalidYAMLConfigException('Failed to find enable_cpu_affinity in the global parameter in the YAML.') + if 'cpu_affinity' not in config['global']: + raise InvalidYAMLConfigException('Failed to find cpu_affinity in the global parameter in the YAML.') + return config['global']['enable_cpu_affinity'], config['global']['cpu_affinity'] + + def _check_parameters(parameter, expected_parameters, parameter_type): failed_checks = [] checks = expected_parameters @@ -110,6 +120,8 @@ def get_config_info(): progress_settings = _get_progress_settings(config=config) notification_settings = _get_notifications_settings(config=config) view_settings = _get_view_settings(config=config) + enable_cpu_affinity, cpu_affinity = _get_cpu_affinity(config=config) return chia_location, log_directory, jobs, manager_check_interval, max_concurrent, \ - progress_settings, notification_settings, log_level, view_settings + progress_settings, notification_settings, log_level, view_settings, \ + enable_cpu_affinity, cpu_affinity diff --git a/plotmanager/library/utilities/commands.py b/plotmanager/library/utilities/commands.py index 71a20a2..fd26d50 100644 --- a/plotmanager/library/utilities/commands.py +++ b/plotmanager/library/utilities/commands.py @@ -29,7 +29,9 @@ def start_manager(): python_file_path = sys.executable chia_location, log_directory, jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings = get_config_info() + notification_settings, debug_level, view_settings, \ + enable_cpu_affinity, cpu_affinity \ + = get_config_info() extra_args = [] if is_windows(): @@ -71,7 +73,9 @@ def stop_manager(): def view(): chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings = get_config_info() + notification_settings, debug_level, view_settings, \ + enable_cpu_affinity, cpu_affinity \ + = get_config_info() view_check_interval = view_settings['check_interval'] analysis = {'files': {}} drives = {'temp': [], 'temp2': [], 'dest': []} @@ -128,5 +132,7 @@ def view(): def analyze_logs(): chia_location, log_directory, jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings = get_config_info() + notification_settings, debug_level, view_settings, \ + enable_cpu_affinity, cpu_affinity \ + = get_config_info() analyze_log_times(log_directory) diff --git a/plotmanager/library/utilities/jobs.py b/plotmanager/library/utilities/jobs.py index 87572a6..e17d47d 100644 --- a/plotmanager/library/utilities/jobs.py +++ b/plotmanager/library/utilities/jobs.py @@ -69,7 +69,17 @@ def load_jobs(config_jobs): return jobs -def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chia_location, log_directory, next_log_check): +def monitor_jobs_to_start( + jobs, + running_work, + max_concurrent, + next_job_work, + chia_location, + log_directory, + next_log_check, + enable_cpu_affinity, + cpu_affinity +): for i, job in enumerate(jobs): logging.info(f'Checking to queue work for job: {job.name}') if len(running_work.values()) >= max_concurrent: @@ -116,7 +126,13 @@ def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chi if job.stagger_minutes: next_job_work[job.name] = datetime.now() + timedelta(minutes=job.stagger_minutes) logging.info(f'Calculating new job stagger time. Next stagger kickoff: {next_job_work[job.name]}') - job, work = start_work(job=job, chia_location=chia_location, log_directory=log_directory) + job, work = start_work( + job=job, + chia_location=chia_location, + log_directory=log_directory, + enable_cpu_affinity=enable_cpu_affinity, + cpu_affinity=cpu_affinity + ) jobs[i] = deepcopy(job) next_log_check = datetime.now() running_work[work.pid] = work @@ -124,7 +140,7 @@ def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chi return jobs, running_work, next_job_work, next_log_check -def start_work(job, chia_location, log_directory): +def start_work(job, chia_location, log_directory, enable_cpu_affinity, cpu_affinity): logging.info(f'Starting new plot for job: {job.name}') nice_val = 10 if is_windows(): @@ -173,6 +189,10 @@ def start_work(job, chia_location, log_directory): logging.info(f'Setting priority level: {nice_val}') psutil.Process(pid).nice(nice_val) logging.info(f'Set priority level') + if enable_cpu_affinity: + logging.info(f'Setting process cpu affinity: {cpu_affinity}') + psutil.Process(pid).cpu_affinity(cpu_affinity) + logging.info(f'Set process cpu affinity') work.pid = pid job.total_running += 1 diff --git a/stateless-manager.py b/stateless-manager.py index 1ec1cec..9a489f4 100644 --- a/stateless-manager.py +++ b/stateless-manager.py @@ -10,7 +10,8 @@ chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings = get_config_info() + notification_settings, debug_level, view_settings, enable_cpu_affinity, cpu_affinity \ + = get_config_info() logging.basicConfig(format='%(asctime)s [%(levelname)s]: %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=debug_level) @@ -23,6 +24,8 @@ logging.info(f'Progress Settings: {progress_settings}') logging.info(f'Notification Settings: {notification_settings}') logging.info(f'View Settings: {view_settings}') +logging.info(f'Enable CPU Affinity: {enable_cpu_affinity}') +logging.info(f'CPU Affinity: {cpu_affinity}') logging.info(f'Loading jobs into objects.') jobs = load_jobs(config_jobs) @@ -63,6 +66,8 @@ chia_location=chia_location, log_directory=log_directory, next_log_check=next_log_check, + enable_cpu_affinity=enable_cpu_affinity, + cpu_affinity=cpu_affinity ) logging.info(f'Sleeping for {manager_check_interval} seconds.') From 254a8671301ff99d4921d4e16c3611bfd7b2e5d5 Mon Sep 17 00:00:00 2001 From: Jacob Chow Date: Thu, 6 May 2021 19:44:46 -0700 Subject: [PATCH 2/6] Update readme and add punctuation --- README.md | 2 ++ config.yaml.default | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b88e304..a12eca0 100644 --- a/README.md +++ b/README.md @@ -133,6 +133,8 @@ These are different settings in order to send notifications when the plot manage ### global * `max_concurrent` - The maximum number of plots that your system can run. The manager will not kick off more than this number of plots total over time. +* `enable_cpu_affinity` - Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see improved harvester or node performance when excluding one or two threads for plotting process. +* `cpu_affinity` - List of cpu (or threads) to allocate for plot processes. The default example assumes you have a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). ### job diff --git a/config.yaml.default b/config.yaml.default index 7899dd7..68c7b02 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -87,7 +87,7 @@ global: # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than # this number of plots total over time. # enable_cpu_affinity: Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see - # improved harvester or node performance when excluding one or two threads for plotting process + # improved harvester or node performance when excluding one or two threads for plotting process. # cpu_affinity: List of cpu (or threads) to allocate for plot processes. The default example assumes you have # a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use # logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). From cc9b88e3510c65eec7c2407a11d04b97b296fe20 Mon Sep 17 00:00:00 2001 From: Swar Date: Thu, 13 May 2021 00:12:46 -0400 Subject: [PATCH 3/6] Moving CPU affinity to the job level --- README.RU.md | 8 +++++--- README.md | 6 +++--- config.yaml.default | 15 +++++++++------ plotmanager/library/parse/configuration.py | 14 +------------- plotmanager/library/utilities/commands.py | 9 +++------ plotmanager/library/utilities/jobs.py | 17 ++++++++++------- plotmanager/library/utilities/objects.py | 3 +++ stateless-manager.py | 7 +------ 8 files changed, 35 insertions(+), 44 deletions(-) diff --git a/README.RU.md b/README.RU.md index 537477c..21617b4 100644 --- a/README.RU.md +++ b/README.RU.md @@ -146,10 +146,8 @@ List of Metrics Gathered * `phase_line_end` - параметр, который будет использоваться для определения того, когда заканчивается фаза. Предполагается, что этот параметр указывает на порядковый номер строки, на которой завершится фаза. Параметр используется механизмом вычисления прогресса вместе с существующим файлом журнала для вычисления процента прогресса. * `phase_weight` - вес, который следует присвоить каждой фазе в расчетах хода выполнения. Как правило, фазы 1 и 3 являются самыми длинными фазами, поэтому они будут иметь больший вес, чем другие. -### global [Нужен перевод] +### global * `max_concurrent` - Максимальное количество полей, которые может засеять ваша система. Менеджер не будет паралелльно запускать больше, чем это количество участков на протяжении всего времени. -* `enable_cpu_affinity` - Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see improved harvester or node performance when excluding one or two threads for plotting process. -* `cpu_affinity` - List of cpu (or threads) to allocate for plot processes. The default example assumes you have a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). ### job @@ -176,6 +174,10 @@ List of Metrics Gathered * `concurrency_start_early_phase` - Фаза, в которой вы хотите начать засеивание заранее. Рекомендуется использовать 4. * `concurrency_start_early_phase_delay` - Максимальное количество минут ожидания до запуска нового участка при обнаружении ранней фазы запуска. * `temporary2_destination_sync` - Представлять каталог назначения как каталог второй временный каталог. Эти два каталога будут синхронизированы, так что они всегда будут представлены как одно и то же значение. +* `exclude_final_directory` - Whether to skip adding `destination_directory` to harvester for farming. This is a Chia feature. +* `enable_cpu_affinity` - Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see improved harvester or node performance when excluding one or two threads for plotting process. +* `cpu_affinity` - List of cpu (or threads) to allocate for plot processes. The default example assumes you have a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). + ### Перевод на Русский Оригинальный текст на Английском языке Вы можете найти по адресу [https://github.com/swar/Swar-Chia-Plot-Manager](https://github.com/swar/Swar-Chia-Plot-Manager) diff --git a/README.md b/README.md index 95cde28..13359fc 100644 --- a/README.md +++ b/README.md @@ -149,8 +149,6 @@ List of Metrics Gathered ### global * `max_concurrent` - The maximum number of plots that your system can run. The manager will not kick off more than this number of plots total over time. -* `enable_cpu_affinity` - Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see improved harvester or node performance when excluding one or two threads for plotting process. -* `cpu_affinity` - List of cpu (or threads) to allocate for plot processes. The default example assumes you have a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). ### job @@ -177,4 +175,6 @@ Check for more details on the Chia CLI here: https://github.com/Chia-Network/chi * `concurrency_start_early_phase` - The phase in which you want to start a plot early. It is recommended to use 4 for this field. * `concurrency_start_early_phase_delay` - The maximum number of minutes to wait before a new plot gets kicked off when the start early phase has been detected. * `temporary2_destination_sync` - This field will always submit the destination directory as the temporary2 directory. These two directories will be in sync so that they will always be submitted as the same value. -* `exclude_final_directory` - Whether to skip adding `destination_directory` to harvester for farming +* `exclude_final_directory` - Whether to skip adding `destination_directory` to harvester for farming. This is a Chia feature. +* `enable_cpu_affinity` - Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see improved harvester or node performance when excluding one or two threads for plotting process. +* `cpu_affinity` - List of cpu (or threads) to allocate for plot processes. The default example assumes you have a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). diff --git a/config.yaml.default b/config.yaml.default index 4fc100c..6beecd0 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -93,14 +93,8 @@ global: # # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than # this number of plots total over time. - # enable_cpu_affinity: Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see - # improved harvester or node performance when excluding one or two threads for plotting process. - # cpu_affinity: List of cpu (or threads) to allocate for plot processes. The default example assumes you have - # a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use - # logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). max_concurrent: 10 enable_cpu_affinity: false - cpu_affinity: [ 0, 1, 2, 3, 4, 5 ] jobs: @@ -146,6 +140,11 @@ jobs: # These two directories will be in sync so that they will always be submitted as the # same value. # exclude_final_directory: Whether to skip adding `destination_directory` to harvester for farming + # enable_cpu_affinity: Enable or disable cpu affinity for plot processes. Systems that plot and harvest may see + # improved harvester or node performance when excluding one or two threads for plotting process. + # cpu_affinity: List of cpu (or threads) to allocate for plot processes. The default example assumes you have + # a hyper-threaded 4 core CPU (8 logical cores). This config will restrict plot processes to use + # logical cores 0-5, leaving logical cores 6 and 7 for other processes (6 restricted, 2 free). - name: micron max_plots: 999 farmer_public_key: @@ -166,6 +165,8 @@ jobs: concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false exclude_final_directory: false + enable_cpu_affinity: false + cpu_affinity: [ 0, 1, 2, 3, 4, 5 ] - name: inland max_plots: 999 @@ -191,3 +192,5 @@ jobs: concurrency_start_early_phase_delay: 0 temporary2_destination_sync: false exclude_final_directory: false + enable_cpu_affinity: false + cpu_affinity: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 ] diff --git a/plotmanager/library/parse/configuration.py b/plotmanager/library/parse/configuration.py index 8b6e1ca..dfb415b 100644 --- a/plotmanager/library/parse/configuration.py +++ b/plotmanager/library/parse/configuration.py @@ -92,16 +92,6 @@ def _get_instrumentation_settings(config): return instrumentation -def _get_cpu_affinity(config): - if 'global' not in config: - raise InvalidYAMLConfigException('Failed to find global parameter in the YAML.') - if 'enable_cpu_affinity' not in config['global']: - raise InvalidYAMLConfigException('Failed to find enable_cpu_affinity in the global parameter in the YAML.') - if 'cpu_affinity' not in config['global']: - raise InvalidYAMLConfigException('Failed to find cpu_affinity in the global parameter in the YAML.') - return config['global']['enable_cpu_affinity'], config['global']['cpu_affinity'] - - def _check_parameters(parameter, expected_parameters, parameter_type): failed_checks = [] checks = expected_parameters @@ -128,8 +118,6 @@ def get_config_info(): notification_settings = _get_notifications_settings(config=config) view_settings = _get_view_settings(config=config) instrumentation_settings = _get_instrumentation_settings(config=config) - enable_cpu_affinity, cpu_affinity = _get_cpu_affinity(config=config) return chia_location, log_directory, jobs, manager_check_interval, max_concurrent, \ - progress_settings, notification_settings, log_level, view_settings, instrumentation_settings, \ - enable_cpu_affinity, cpu_affinity + progress_settings, notification_settings, log_level, view_settings, instrumentation_settings diff --git a/plotmanager/library/utilities/commands.py b/plotmanager/library/utilities/commands.py index d817700..6cd1542 100644 --- a/plotmanager/library/utilities/commands.py +++ b/plotmanager/library/utilities/commands.py @@ -30,8 +30,7 @@ def start_manager(): python_file_path = sys.executable chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings, instrumentation_settings, enable_cpu_affinity, cpu_affinity \ - = get_config_info() + notification_settings, debug_level, view_settings, instrumentation_settings = get_config_info() test_configuration(chia_location=chia_location, notification_settings=notification_settings, instrumentation_settings=instrumentation_settings) @@ -76,8 +75,7 @@ def stop_manager(): def view(): chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings, instrumentation_settings, enable_cpu_affinity, cpu_affinity \ - = get_config_info() + notification_settings, debug_level, view_settings, instrumentation_settings = get_config_info() view_check_interval = view_settings['check_interval'] analysis = {'files': {}} drives = {'temp': [], 'temp2': [], 'dest': []} @@ -135,6 +133,5 @@ def view(): def analyze_logs(): chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings, instrumentation_settings, enable_cpu_affinity, cpu_affinity \ - = get_config_info() + notification_settings, debug_level, view_settings, instrumentation_settings = get_config_info() analyze_log_times(log_directory) diff --git a/plotmanager/library/utilities/jobs.py b/plotmanager/library/utilities/jobs.py index 3c03d6f..c3d0545 100644 --- a/plotmanager/library/utilities/jobs.py +++ b/plotmanager/library/utilities/jobs.py @@ -96,6 +96,11 @@ def load_jobs(config_jobs): job.threads = info['threads'] job.buckets = info['buckets'] job.memory_buffer = info['memory_buffer'] + + job.enable_cpu_affinity = info.get('enable_cpu_affinity', False) + if job.enable_cpu_affinity: + job.cpu_affinity = info['cpu_affinity'] + jobs.append(job) return jobs @@ -118,7 +123,7 @@ def determine_job_size(k_size): def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chia_location, log_directory, - next_log_check, system_drives, enable_cpu_affinity, cpu_affinity): + next_log_check, system_drives): drives_free_space = {} for job in jobs: directories = [job.destination_directory] @@ -198,8 +203,6 @@ def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chi chia_location=chia_location, log_directory=log_directory, drives_free_space=drives_free_space, - enable_cpu_affinity=enable_cpu_affinity, - cpu_affinity=cpu_affinity, ) jobs[i] = deepcopy(job) if work is None: @@ -210,7 +213,7 @@ def monitor_jobs_to_start(jobs, running_work, max_concurrent, next_job_work, chi return jobs, running_work, next_job_work, next_log_check -def start_work(job, chia_location, log_directory, drives_free_space, enable_cpu_affinity, cpu_affinity): +def start_work(job, chia_location, log_directory, drives_free_space): logging.info(f'Starting new plot for job: {job.name}') nice_val = 10 if is_windows(): @@ -265,9 +268,9 @@ def start_work(job, chia_location, log_directory, drives_free_space, enable_cpu_ logging.info(f'Setting priority level: {nice_val}') psutil.Process(pid).nice(nice_val) logging.info(f'Set priority level') - if enable_cpu_affinity: - logging.info(f'Setting process cpu affinity: {cpu_affinity}') - psutil.Process(pid).cpu_affinity(cpu_affinity) + if job.enable_cpu_affinity: + logging.info(f'Setting process cpu affinity: {job.cpu_affinity}') + psutil.Process(pid).cpu_affinity(job.cpu_affinity) logging.info(f'Set process cpu affinity') work.pid = pid diff --git a/plotmanager/library/utilities/objects.py b/plotmanager/library/utilities/objects.py index ade30b3..3cd60da 100644 --- a/plotmanager/library/utilities/objects.py +++ b/plotmanager/library/utilities/objects.py @@ -30,6 +30,9 @@ class Job: buckets = None memory_buffer = None + enable_cpu_affinity = False + cpu_affinity = [] + class Work: work_id = None diff --git a/stateless-manager.py b/stateless-manager.py index 6ca687c..4ead50d 100644 --- a/stateless-manager.py +++ b/stateless-manager.py @@ -10,8 +10,7 @@ chia_location, log_directory, config_jobs, manager_check_interval, max_concurrent, progress_settings, \ - notification_settings, debug_level, view_settings, instrumentation_settings, enable_cpu_affinity, cpu_affinity \ - = get_config_info() + notification_settings, debug_level, view_settings, instrumentation_settings = get_config_info() logging.basicConfig(format='%(asctime)s [%(levelname)s]: %(message)s', datefmt='%Y-%m-%d %H:%M:%S', level=debug_level) @@ -25,8 +24,6 @@ logging.info(f'Notification Settings: {notification_settings}') logging.info(f'View Settings: {view_settings}') logging.info(f'Instrumentation Settings: {instrumentation_settings}') -logging.info(f'Enable CPU Affinity: {enable_cpu_affinity}') -logging.info(f'CPU Affinity: {cpu_affinity}') logging.info(f'Loading jobs into objects.') jobs = load_jobs(config_jobs) @@ -74,8 +71,6 @@ log_directory=log_directory, next_log_check=next_log_check, system_drives=system_drives, - enable_cpu_affinity=enable_cpu_affinity, - cpu_affinity=cpu_affinity ) logging.info(f'Sleeping for {manager_check_interval} seconds.') From c93c54db0c0d4d8326eb51ced07ab90db6aff549 Mon Sep 17 00:00:00 2001 From: Swar Date: Thu, 13 May 2021 00:15:31 -0400 Subject: [PATCH 4/6] Reverting global indent --- config.yaml.default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.yaml.default b/config.yaml.default index 6beecd0..ef7b970 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -91,8 +91,8 @@ progress: global: # These are the settings that will be used globally by the plot manager. # - # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than - # this number of plots total over time. + # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than + # this number of plots total over time. max_concurrent: 10 enable_cpu_affinity: false From a7272c0e4790ac5b0c0ae32d376a554f74601845 Mon Sep 17 00:00:00 2001 From: Swar Date: Thu, 13 May 2021 00:16:24 -0400 Subject: [PATCH 5/6] Removing extra CPU for affinity example --- config.yaml.default | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config.yaml.default b/config.yaml.default index ef7b970..c114344 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -91,8 +91,8 @@ progress: global: # These are the settings that will be used globally by the plot manager. # - # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than - # this number of plots total over time. + # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than this + # number of plots total over time. max_concurrent: 10 enable_cpu_affinity: false @@ -193,4 +193,4 @@ jobs: temporary2_destination_sync: false exclude_final_directory: false enable_cpu_affinity: false - cpu_affinity: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 ] + cpu_affinity: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 ] From 40a3e93753dbc9237dac364de1efa0952edb1486 Mon Sep 17 00:00:00 2001 From: Swar Date: Thu, 13 May 2021 00:17:57 -0400 Subject: [PATCH 6/6] Removing enable_cpu_affinity in global --- config.yaml.default | 1 - 1 file changed, 1 deletion(-) diff --git a/config.yaml.default b/config.yaml.default index c114344..70e5e9d 100644 --- a/config.yaml.default +++ b/config.yaml.default @@ -94,7 +94,6 @@ global: # max_concurrent: The maximum number of plots that your system can run. The manager will not kick off more than this # number of plots total over time. max_concurrent: 10 - enable_cpu_affinity: false jobs: