Я делаю шахматную программу, используя поиск по дереву Монте-Карло, который в будущем будет управляться нейронной сетью. Проблема на данный момент заключается в том, что, несмотря на все мои усилия по максимизации эффективности системы, движку все еще требуется 3 минуты, чтобы пройти 800 игр, необходимых для поиска. Чтобы бороться с этим, я попытался внедрить в систему многопроцессорность, чтобы она могла играть более чем в одну игру одновременно.
К сожалению, несмотря на то, что мультипроцессор находится в отдельном файле, который импортируется в мою основную функцию, он все еще открывает дополнительные окна Pygame в моей системе меню.
Вот соответствующая часть моего кода:
import multiprocessing
import time
import pygame
pygame.init()
screen = pygame.display.set_mode([800, 400])
def play_game():
time.sleep(3)
print("done")
if __name__ == "__main__":
for i in range(3):
game1 = multiprocessing.Process(target=play_game)
game2 = multiprocessing.Process(target=play_game)
game1.start()
game2.start()
game1.join()
game2.join()
Я ожидал бы, что это откроет окно pygame в начале, затем запустит play_games и оставит только один код pygame. Тем не менее, он открывает два дополнительных окна, по одному для каждого процесса. Почему это так и как я могу предотвратить это?