<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;">I am an Application Engineer at Interactive Supercomputing and we are rolling out a beta version of our Star-P product for Python. We are actively looking for computationally intensive Python application to port to Star-P. Star-P is a parallel application development platform that allows users to tap into the power and memory of supercomputers from the comfort of the favorite desktop applications, in this case Python. </span></font></font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;"> </span></font></font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">Star-P is capable of both fine-grained parallel computation and embarrassingly parallel computation. The fine-grained mode of our Star-P Python implementation has been modeled on the Python NumPy package - for example:</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">x = starp.random.rand(20000,20000)</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">y = starp.linalg.inv(x)</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">instead of </font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">x = numpy.random.rand(20000,20000)</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">y = numpy.linalg.inv(x)</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">Where the first couple of lines are executed on the Star-P parallel server in full C/MPI mode and the last couple of lines are executed on the desktop using Python.</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">The embarrassingly parallel mode is capable of executing any Python module, although input and output parameters are currently limited to NumPy arrays, scalars, and strings - for example:</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">y = starp.ppeval(mymodule.dosomething,x)</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">instead of</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">for i in range(0,n):</font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">    y[:,:,i] = mymodule.dosomething(x[:,i])</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 12.0px Courier"> </font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">Where again in the former example the iterations are spread out over the available CPUs (note the abstraction - user need not worry regarding the number of CPUs) on the Star-P server using Python and in the latter the looping is doing in serial on the client using Python.</font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;"> </span></font></font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 12.0px Courier">We are looking for real Python application that you would be willing to share with us that  we can port to Star-P. We want to use this experience as a basis for further improvements and development of our Python client. </font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;"> </span></font></font></p><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;">Thanks,</span></font></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;">Ronnie</span></font></font></div><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font style="font: 16.0px Times New Roman"><font class="Apple-style-span" face="Courier" size="3"><span class="Apple-style-span" style="font-size: 12px;"> </span></font></font></p> 
</body></html>