Numerical Python for scalable architectures

Mads Ruben Burgdorff Kristensen, Brian Vinter
<span title="">2010</span> <i title="ACM Press"> <a target="_blank" rel="noopener" href="https://fatcat.wiki/container/qbxod4os6bedxcfksuorov2poy" style="color: black;">Proceedings of the Fourth Conference on Partitioned Global Address Space Programming Model - PGAS &#39;10</a> </i> &nbsp;
In this paper, we introduce DistNumPy, a library for doing numerical computation in Python that targets scalable distributed memory architectures. DistNumPy extends the NumPy module [15] , which is popular for scientific programming. Replacing NumPy with Dist-NumPy enables the user to write sequential Python programs that seamlessly utilize distributed memory architectures. This feature is obtained by introducing a new backend for NumPy arrays, which distribute data amongst the nodes in a
more &raquo; ... buted memory multiprocessor. All operations on this new array will seek to utilize all available processors. The array itself is distributed between multiple processors in order to support larger arrays than a single node can hold in memory. We perform three experiments of sequential Python programs running on an Ethernet based cluster of SMP-nodes with a total of 64 CPU-cores. The results show an 88% CPU utilization when running a Monte Carlo simulation, 63% CPU utilization on an N-body simulation and a more modest 50% on a Jacobi solver. The primary limitation in CPU utilization is identified as SMP limitations and not the distribution aspect. Based on the experiments we find that it is possible to obtain significant speedup from using our new array-backend without changing the original Python code.
<span class="external-identifiers"> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/2020373.2020388">doi:10.1145/2020373.2020388</a> <a target="_blank" rel="external noopener" href="https://dblp.org/rec/conf/pgas/KristensenV10.html">dblp:conf/pgas/KristensenV10</a> <a target="_blank" rel="external noopener" href="https://fatcat.wiki/release/limzw33qgnfhtmtbqlcpf3xu6i">fatcat:limzw33qgnfhtmtbqlcpf3xu6i</a> </span>
<a target="_blank" rel="noopener" href="https://web.archive.org/web/20180718215611/https://curis.ku.dk/ws/files/51458292/Numerical_python.pdf" title="fulltext PDF download" data-goatcounter-click="serp-fulltext" data-goatcounter-title="serp-fulltext"> <button class="ui simple right pointing dropdown compact black labeled icon button serp-button"> <i class="icon ia-icon"></i> Web Archive [PDF] <div class="menu fulltext-thumbnail"> <img src="https://blobs.fatcat.wiki/thumbnail/pdf/27/ca/27ca296ac2dd9613ed2cb7eed7e616a2a3b96469.180px.jpg" alt="fulltext thumbnail" loading="lazy"> </div> </button> </a> <a target="_blank" rel="external noopener noreferrer" href="https://doi.org/10.1145/2020373.2020388"> <button class="ui left aligned compact blue labeled icon button serp-button"> <i class="external alternate icon"></i> acm.org </button> </a>