Как одну и ту же программу запустить одновременно

У меня есть сценарий Python, запуск которого занимает день. Мне нужно запустить один и тот же код для разных параметров. Однако использование цикла for для перебора всех параметров невозможно, потому что это приведет к еще большему времени вычислений. Это простой пример для описания ситуации:

ValuesParams=[1,2,3,4,5] for i in ValuesParams: do something output file_i.csv

Я хотел бы запустить 5 разных программ (в компьютерном кластере) с 5 разными значениями, которые выводят 5 разных файлов csv с разными именами, но делают это одновременно . Потому что выполнение этого цикла for в одной программе займет 5 дней. На самом деле это не просто 5 параметров, и программа — не простой цикл.

Как я могу это сделать? Любой совет или информация о том, что искать, были бы невероятно полезны.

ИЗМЕНИТЬ Спасибо всем ответам, особенно remram. Они поставили меня на путь, чтобы найти ответ.

Решение 1. Я создал сценарий RunPrograms.sh, который перебирает параметры var1, var2, затем передал параметры моему сценарию python test.py и запустил все задания одновременно. Одно ограничение сохраняется, я должен быть осторожен с отправкой, например, 1000 заданий одновременно, но это то, что мне нужно.

Запуск двух программ одновременно


#!/bin/bash for var1 in $(seq 1 0.5 3); do for var2 in $(seq 1 3); do python3 test.py $var1 $var2 https://question-it.com/questions/1008978/odnovremennyj-zapusk-neskolkih-versij-odnoj-i-toj-zhe-programmy» target=»_blank»]question-it.com[/mask_link]

Как закрыть несколько окон одной и той же программы через одну и ту же программу и оставить активной только одну программу

Я использую меню правой кнопки мыши, чтобы запустить программу, которая перемещает файлы в папку и выполняет с ними некоторую работу. Проблема в том, что когда я делаю это с несколькими файлами, он запускает несколько экземпляров программы. Если у меня есть 50 файлов, приложение запустится 50 раз.

Читайте также:
Программа новый порядок какая страна

Мне нужно иметь только одно окно, а не несколько окон. До сих пор мне иногда удавалось заставить его работать с этим кодом, но мне нужно, чтобы он работал в 100% случаев:

# ======================================================== #this only catches the file adress that was right clicked and launch with the app. Then it moves it to the installer folder try: # THIS CATCHES THE SELECTED FILE LINK TO BE MOVED TO THE INSTALL FOLDER IF IT IS SUCCESSFULL variable= sys.argv[1] index = -1 for i in variable: index = index + 1 if «\» in i: sum= index # MOVE TO INSTALLER DIRECTORY shutil.move(variable, Install_folder + f»Installerfiles») except: print(‘FILE NOT ADDED THROUGH THE MOVE TOOL’) #========================================================= processlist = list() time.sleep(int(time.process_time())*random.randint(1,3)) for process in psutil.process_iter(): processlist.append(process.name()) if processlist.count(«program.exe») >= 4: sys.exit()

Я предполагаю, что программы начинают активироваться одновременно, и, возможно, поэтому они закрываются, а не оставляют только одно активное окно. У меня только 2 месяца Python, поэтому надеюсь, что вы могли бы мне помочь. Заранее спасибо за чтение.

Как запустить два Аккаунта одновременно на одном ПК?

Мое другое альтернативное решение — разделить программы на две части. Один для перемещения файлов, а другой для работы с файлами. Но это решение не является желаемым.

try: variable = sys.argv[1] index = -1 # THIS CATCHES THE SELECTED FILE LINK TO BE MOVED TO THE HANDY INSTALL FOLDER IF IT IS SUCCESSFULL for i in chetita: index = index + 1 if «\» in i: sum = index # CHOOSES DIRECTORY WHERE THE FILES TO BE INSTALLED ARE shutil.move(variable, f»\program\InstallFolder») os.makedirs(f»\program\Queue») tiger = [] serpent = [] while True: time.sleep(1) serpent = os.listdir(f»\program\InstallFolder») time.sleep(1) tiger = os.listdir(f»\program\InstallFolder») if tiger == serpent: break except: if os.path.exists(f»\program\Queue»): sys.exit() print(‘application executed directly through the .exe’).

Читайте также:
Для чего в программе 1с бухгалтерия применяется платежное поручение исходящее

В основном, когда открываются все окна, первое окно завершает задачу перемещения файла. Создает файл с именем Queue и входит в цикл while, который активен до тех пор, пока содержимое папки не совпадет с 2 переменными (это означает, что все остальные окна завершают свою работу и закрываются). Другие программы закрываются, потому что они получают исключение при попытке создать эту папку. Когда все остальные программы будут закрыты, ожидающие окна выйдут из цикла while и начнут работать с файлами.

Комментарии (3)

«заставить иногда работать». когда он работает и когда он терпит неудачу?

Источник: reddeveloper.ru

Как одновременно выполнить несколько команд в командной строке

Как одновременно выполнить несколько команд в командной строке

Для объединения команд в командной строке в одну строку, используются специальные символы, которые называются символами условной обработки. У командного процессора в MS-DOS и интерпретатора командной строки Windows в виде COMMAND.com или CMD.exe их существует в количестве пяти штук, но нас интересует только три из них.

Использование символов условной обработки

Для экранирования описанных ниже символов . Работает это следующим образом: после выполнения первой команды, будет выполнена вторая команда, и т. д. В качестве примера рассмотрим запуск Калькулятора (calc.exe), а затем — Блокнота (notepad.exe):

calc.exe notepad.exe F:data.txt)

Источник: pc.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru