Python SCOOP (szoftver) - Python SCOOP (software)

Python SCOOP
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 . ; 6 évvel ezelőtt ( 2014-03-17 )
Adattár Szerkessze ezt a Wikidatán
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 .pyscoop .org

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))

Hivatkozások

Külső linkek