Python SCOOP (szoftver) - Python SCOOP (software)
Eredeti szerző (k) | Marc Parizeau és Yannick Hold |
---|---|
Fejlesztő (k) | Yannick Hold és Olivier Gagnon |
Stabil kiadás | 0.7.1 / 2014. március 17 .
|
Adattár | |
Beírva | Piton |
Operációs rendszer | POSIX- kompatibilis |
Felület | Cross-platform |
típus | Elosztott számítási keret |
Engedély | LGPL |
Weboldal | www |
Az SCOOP ( Scalable Concurrent Operations in Python ) egy Python szoftver modul, amely párhuzamos feladatok terjesztésére szolgál különböző környezetekben, a munkaállomások heterogén hálózataitól a szuperszámítógépekig.
Ez használ ØMQ és Greenlet csomag építőkockák beágyazására és osztja fel a feladatokat (elemzi a Future ) közötti folyamatok és / vagy rendszereket. Felületét a PEP-3148 javaslat ihlette .
Az SCOOP olyan tudományos alkalmazásokra irányul, amelyek sok lazán összekapcsolt feladat végrehajtását igénylik az összes rendelkezésre álló hardvererőforrás felhasználásával. Ezeknek az erőforrásoknak elérhetőnek kell lenniük az SSH- n keresztül .
Történelem
Az SCOOP-ot Yannick Hold és Marc Parizeau kezdeményezte az Université Laval Számítógépes Látás és Rendszer Laboratóriumában . Ez egy ismétlődő lépés a DEAP keretrendszer már elavult DTM moduljával szemben az evolúciós algoritmus fejlesztése érdekében . Míg a DTM az MPI- t használta kommunikációjához, addig az SCOOP az ØMQ-t használja.
Hálózati topológia
Az SCOOP a Broker Architecture-t használja jövője terjesztésére. Központi elemen alapul, az úgynevezett Brókernek, amely a munkát eljuttatja dolgozóihoz. A fő különbség e minta és a mester / rabszolga topológia között a Jövő eredetében rejlik. A Broker architektúrában a jövők a topológia peremén található munkavállalótól származnak, a Master / slave architektúrában lévő mester helyett. Ez nagyobb megbízhatóságot biztosít a munkavállalói hibák tekintetében, és általában jobb teljesítményt nyújt a Bróker általános funkciójának köszönhetően. Mivel nincs szüksége a Future sorosítására és deserializálására, hogy átirányítsa őket a hálózaton, munkaterhelése hálózati vagy interprocesszoros I / O-ból áll, és szinte nincs CPU-feldolgozási idő. Ez csökkenti a Broker topológia szűk keresztmetszetét.
A Broker architektúra nem fogja annyira hangsúlyozni a hálózati struktúrát és az elemeket, mint egy teljesen elosztott topológia, mivel minden munkavállalóra csak egy kapcsolat szükséges.
Példa
Bevezető párhuzam: "Hello, világ!" példa így valósul meg:
from scoop import futures
def hello_world(value) -> str:
return "Hello World from Future #{}".format(value)
if __name__ == "__main__":
return_values = futures.map(hello_world, range(16))
print("\n".join(return_values))