I den här artikeln introducerar vi DistNumPy, ett bibliotek för att göra numeriska beräkningar i Python som riktar sig till skalbara distribuerade minnesarkitekturer. DistNumPy utökar NumPy modulen [15], som är populär för vetenskaplig programmering. Genom att ersätta NumPy med DistNumPy kan användaren skriva sekventiella Python-program som sömlöst använder distribuerade minnesarkitekturer. Denna funktion erhålls genom att introducera ett nytt gränssnitt för NumPy-matriser, som distribuerar data bland noderna i en distribuerad minnesmultiprocessor. Alla operationer på denna nya array kommer att försöka utnyttja alla tillgängliga processorer. Själva arrayen distribueras mellan flera processorer för att stödja större arrayer än en enda nod kan hålla i minnet. Vi utför tre experiment av sekventiella Python-program som körs på ett Ethernet-baserat kluster av SMP-nodes med totalt 64 CPU-kärnor. Resultaten visar en 88% CPU utnyttjande när du kör en Monte Carlo simulering, 63% CPU utnyttjande på en N-kropp simulering och en mer blygsam 50% på en Jacobi lösare. Den primära begränsningen i CPU-användning identifieras som SMP-begränsningar och inte distributionsaspekten. Baserat på experimenten finner vi att det är möjligt att uppnå betydande snabbhet genom att använda vår nya array-backend utan att ändra den ursprungliga Python-koden.
DistNumpy REF är ett bibliotek för att göra numeriska beräkningar i Python som riktar sig till skalbara distribuerade minnesarkitekturer.
Numerical Python for scalable architectures