<br><br><div class="gmail_quote">On Feb 8, 2008 10:38 PM, Michael van der Gulik <<a href="mailto:mikevdg@gmail.com">mikevdg@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><br><br>go<br> | anArray numProcesses step |<br> anArray := Array new: 60000. "Assume an even larger number for realistic examples"<br>
numProcesses := 32. <br> step := anArray size // numProcesses.<br> 1 to: anArray size by: step do: [ :i |<br> [ <br> i to: (i+numProcesses-1) do: [ :j |<br> anArray at: j put: j ]<br>
] fixTemps fork.<br> ].<br> ^ anArray.<br><br>However, it doesn't work except for small numbers. I'd be happy if somebody would be able to provide a fixed version; I can't work it out.<div><div>
</div><div class="Wj3C7c"><br></div></div></blockquote><div><br><br>That was a really obvious, stupid bug. Try again: <br><br> anArray := Array new: 3200000. <br> numProcesses := 64. <br> step := anArray size // numProcesses.<br>
1 to: anArray size by: step do: [ :i |<br> [ <br> i to: i+step-1 do: [ :j |<br> anArray at: j put: j ]<br> ] fixTemps fork.<br> ]. <br></div></div><br><br>Gulik.<br clear="all">
<br>-- <br><a href="http://people.squeakfoundation.org/person/mikevdg">http://people.squeakfoundation.org/person/mikevdg</a><br><a href="http://gulik.pbwiki.com/">http://gulik.pbwiki.com/</a>