<html><head></head><body bgcolor="#FFFFFF"><div>Is there any guideline(rough) how compute dependent an operation should be to get benefit from ParallelArray ?</div><div><br></div><div>Creating ParallelArray<int[]> (int[2^21][16]) vs ParallelArray<Integer> for pure a function like hashing gave 10x boost in my local for array size 2^25.</div><div><br></div><div><br></div><div><br>On 16 Jan 2012, at 19:00, Vitaly Davidovich <<a href="mailto:vitalyd@gmail.com">vitalyd@gmail.com</a>> wrote:<br><br></div><div></div><blockquote type="cite"><div>Hashing integers in a linearly-traversed array is going to be pretty quick even on a single core (unless your hash function does something expensive); for parallel to give you benefit, you may have to throw more work at the problem.  How large is the int array that you're scanning?<br>
<br><div class="gmail_quote">On Mon, Jan 16, 2012 at 9:59 AM, Yuheng Long <span dir="ltr"><<a href="mailto:csgzlong@iastate.edu">csgzlong@iastate.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
To whom it concerns,<br>          I tried to parallelize a for loop these days which iterates the elements (Integer) of an array and applies a pure hash function on each of the elements<br>and substitute the original elements with the results.<br>

          So I used the withIndexedMapping method in the ParallelArray class to parallelize the code.<br>          I try both my 4 cores and my 24 cores machines. I did not get any speedup.<br>          The code snippet is listed below. Would you please tell me what I did wrong or explain why I did not get any speedup in the implementation at all?<br>

          I would like to send out the complete code if necessary. Thank you.<br><br>Hash h = new Hash();<br>ForkJoinPool fjp = new ForkJoinPool();<br>ParallelArray<Integer> pa = ParallelArray.createUsingHandoff(elementData, fjp);<br>

pa.replaceWithMappedIndex(h);               <br><br>public class Hash implements Ops.IntAndObjectToObject<Integer, Integer> {<br>   public Integer op (int index, Integer o) {<br>        int key = o;<br>        /* key = the hash computation code */<br>

        return key;<br>   }<br>}<br><br>Thank you very much,<br>Sincerely,<br>Yuheng<br>
<br>_______________________________________________<br>
Concurrency-interest mailing list<br>
<a href="mailto:Concurrency-interest@cs.oswego.edu">Concurrency-interest@cs.oswego.edu</a><br>
<a href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest" target="_blank">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Vitaly<br>617-548-7007 (mobile)<br>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Concurrency-interest mailing list</span><br><span><a href="mailto:Concurrency-interest@cs.oswego.edu">Concurrency-interest@cs.oswego.edu</a></span><br><span><a href="http://cs.oswego.edu/mailman/listinfo/concurrency-interest">http://cs.oswego.edu/mailman/listinfo/concurrency-interest</a></span><br></div></blockquote></body></html>