Python + SCOOP Distributed Computing kann nicht auf Windows-PCs ausgeführt werden

Einführung

Dies ist ein Memo, als ich unter Windows versucht habe, verteiltes Rechnen mit einer Python-Bibliothek namens SCOOP durchzuführen. SCOOP ist eine Python-Bibliothek für die Aufgabenverteilung, die sich vom Windows-Paketverwaltungstool Scoop unterscheidet. Es ist kompliziert. Da Parallelität und Verteilung Amateure sind, glaubte ich, dass eine großartige Person dies tun könnte, aber ich habe viel recherchiert, aber ich konnte das Ergebnis nicht erzielen, also lasse ich es so, dass es keine gibt, die die gleichen verschwenderischen Schritte wie ich unternehmen.

Warum kannst du nicht

Bei verteilter Ausführung auf mehreren PCs durch SCOOP dabei os.getpgrp() Rufen Sie die Funktion auf. Dies ist nur unter Unix verfügbar und führt zu einem Fehler. Wenn Sie [Windows-Subsystem für Linux](https://docs.microsoft.com/en-us/windows/wsl/install-on-server'Windows Subsystem für Linux ') verwenden, können Sie getpgrp () verwenden. Da es jedoch unter Linux ausgeführt wird, wird es nicht unter Windows verteilt. Ich wollte mich täuschen lassen, weil es möglich war, parallel auf meinem PC zu arbeiten, aber mit anderen Worten --host <host> Wenn Sie angeben, tritt ein Fehler auf.

Was ich getan habe

Ich werde das Verfahren, das ich versucht habe, als Referenz unten verlassen.

Vorbereitung

Instanz vorbereiten

  1. Bereiten Sie zwei EC2-Instanzen in AWS vor

SSH-Verbindung vorbereiten (Authentifizierung mit öffentlichem Schlüssel)

  1. Hinzufügen der OpenSSH-Serverfunktion --Einstellungen → Apps → Optionale Funktionen verwalten → Funktionen hinzufügen → "OpenSSH Server installieren"
  1. Kommunikationseinstellungen für öffentliche Schlüssel
  1. Konfigurationsdatei erstellen --Erstellen Sie ".ssh \ config" auf der Verbindungsquelleninstanz und definieren Sie den Verbindungsnamen und das Verbindungsziel wie unten gezeigt.
Host <Beliebiger Name>
  HostName <IP-Adresse des Verbindungsziels>
  User <Jeder Benutzer>
  Port <Port, den Sie verwenden möchten>
  IdentityFile <Der Pfad des privaten Schlüssels, den Sie haben>
---Das Folgende ist dieses Beispiel---
Host test
  HostName **.***.***.***
  User Administrator
  Port 22
  IdentityFile C:/Users/Administrator/.ssh/id_rsa

Installieren Sie Build-Tools für Visual Studio 2019

  1. Öffnen Sie "Visual Studio 2019 Tools" am unteren Rand des Bildschirms Offizielle Seite.
  2. Laden Sie Build Tools für Visual Studio 2019 herunter und führen Sie es aus
  3. Überprüfen Sie die C ++ Build Tools

Python vorbereiten

  1. Installieren Sie Python
  1. Bereiten Sie das Python-Programm vor, das Sie verteilen möchten -Kopieren Sie map_doc.py aus Official Manual

map_doc.py


from __future__ import print_function
from scoop import futures

def helloWorld(value):
    return "Hello World from Future #{0}".format(value)

if __name__ == "__main__":
    returnValues = list(futures.map(helloWorld, range(16)))
    print("\n".join(returnValues))

Versuch

Wenn Sie dies bisher tun können, folgen Sie dem offiziellen Handbuch python -m scoop -n 8 map_doc.py In diesem Fall wird es parallel auf dem eigenen PC ausgeführt und ist normal erfolgreich. python -m scoop -n 8 --host test map_doc.py Wenn Sie dies tun, wird der folgende Fehler angezeigt, der fehlschlägt. Das Attributfehler: Modul'os 'hat kein Attribut'getpgrp' am Ende dieses Fehlers ist die Ursache des Fehlers. Es gibt nichts, was nicht da ist.

b'Traceback (most recent call last):\r\n  File "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python39\\lib\\runpy.py", line 197, in _run_module_as_main\r\n    return _run_code(code, main_globals, None,\r\n  File "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python39\\lib\\runpy.py", line 87, in _run_code\r\n    exec(code, run_globals)\r\n  File "C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\scoop\\broker\\__main__.py", line 65, in <module>\r\n    sys.stdout.write(str(os.getpgrp()) + "\\n")\r\nAttributeError: module \'os\' has no attribute \'getpgrp\'\r\n'

Schließlich

Als ich aufgeben wollte, habe ich mich mit anderen Leuten beraten und festgestellt, dass es viele Muster gibt, wie z. B. "Wenn Sie verteiltes Computing betreiben möchten, versuchen Sie es in Zukunft bei Spacon. Daher schreibe ich Programme unter der Annahme von Linux. Unter Windows mache ich nicht viel." Ich habe einen Kommentar wie "Yo" erhalten. Das scheint der Fall zu sein. Ich wollte es diesmal unter Windows tun, weil ich Programme ausführen wollte, die unter der Annahme geschrieben wurden, dass es parallel auf einem Windows-PC ausgeführt wird, aber es kann nicht geholfen werden, da es kein Betriebssystem gibt, das keine Funktionen hat.

Referenzlink

https://scoop.readthedocs.io/en/0.7/index.html https://docs.python.org/ja/3/library/os.html http://fx-kirin.com/python/python-scoop/ https://www.server-world.info/query?os=Windows_Server_2019&p=ssh&f=3

Recommended Posts

Python + SCOOP Distributed Computing kann nicht auf Windows-PCs ausgeführt werden
Was tun, wenn PyAudio unter Python 3.7, 3.8, 3.9 unter Windows nicht installiert werden kann?
Python unter Windows
Dual_boot Windows 10 und Linux mit Clover auf einem UEFI-PC, der nicht von NVME gestartet werden kann
Ich kann mit Python3.5 (Windows) + django1.7.1 kein Projekt erstellen.
Erstellen Sie einfach eine Python 3-Ausführungsumgebung unter Windows
Einstellungen für die Python-Umgebung (virtualenv + pip ist nicht möglich)
Untersuchung beim Import kann nicht mit Python durchgeführt werden
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen Sie die Python-Erweiterung E-Cell 4 unter Windows 7 (64 Bit).
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Python Basic ② in Windows
Installieren Sie Python unter Windows
Vorgehensweise zum Erstellen einer CDK-Umgebung unter Windows (Python)
Erstellen Sie unter Windows eine anständige Shell- und Python-Umgebung
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (2) Grundeinstellungen
Aktivieren Sie Python virtualenv unter Windows
Installieren Sie Watchdog unter Windows + Python 3.3
Python + Kivy-Entwicklung unter Windows
Sphinx-Autobuild (0.5.2) unter Windows7, Python 3.5.1, Sphinx 1.3.5
Schnellste Python-Installation unter Windows
Erstellen Sie eine Python-Umgebung unter Windows
Erstellen Sie eine Python-Umgebung mit Windows
Ich habe Python unter Windows ausgeführt
[Python] [Chainer] [Windows] Chainer unter Windows installieren
Verwenden Sie Python unter Windows (PyCharm)
Wettbewerb mit VS-Code Erstellen Sie eine Python-Umgebung für Profis unter Windows
Erstellen Sie eine 64-Bit-Python 2.7-Umgebung mit TDM-GCC und MinGW-w64 unter Windows 7
Ein Datensatz, den GAMEBOY mit Python nicht erstellen konnte. (PYBOY)
Hinweise zur Verwendung der Tab-Vervollständigung beim interaktiven Ausführen von Python unter Windows
Alles vom Erstellen einer Python-Umgebung bis zur Ausführung unter Windows
Erstellen einer Python-Umgebung auf einem Mac
Python-Umgebungskonstruktionsnotiz unter Windows 10
Python 3.6 unter Windows ... und zu Xamarin.
Installieren von Kivy unter Windows 10 64bit Python3.5
Drücken Sie einen Befehl in Python (Windows)
Aufbau einer Anaconda-Python-Umgebung unter Windows 10
Erstellen einer Python-Umgebung unter Ubuntu
Python2.7-Installation in einer Windows 32-Bit-Umgebung
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Installieren Sie Python unter Windows + pip + virtualenv
Installieren Sie Pytorch unter Blender 2.90 Python unter Windows
Verknüpfen Sie Modelica und Python unter Windows
Installieren von Kivy-Designer unter Windows 10 64-Bit Python3.5
Erstellen Sie eine Linux-Umgebung unter Windows 10
Mecab / Cabocha / KNP unter Python + Windows
Erstellen Sie eine Python-Umgebung in Centos
Installieren Sie die Python-Entwicklungsumgebung unter Windows 10
Unter Windows erstellte Python-CGI-Datei
Erste Schritte mit Python 3.8 unter Windows
Erstellen Sie eine Python3-Umgebung unter CentOS7
Reproduzieren Sie die One-Touch-Suche mit Python 3.7.3. (Windows 10)
Einführung einer Bibliothek, die unter Python / Windows nicht in pip enthalten war
Erstellen Sie eine Python-Entwicklungsumgebung unter Windows (Remote-WSL für Visual Studio Code).
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Das Modul kann nicht in Python auf EC2 importiert werden, das von AWS Lambda ausgeführt wird
Ein Python-Skript für Mac, das unter Windows ohne verstümmelte Zeichen komprimiert wird