Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The main point to use parallel processing is a presence of <strong>large amount of data</strong> or <strong>large computations</strong> that <strong>can be performed without each other</strong>. For example, you can count factorial of a 10000 with many threads by splitting it on parts 1..1000, 1001..2000, 2001..3000, etc., processing each part and then accumulating results with <code>*</code>. On the other hand, you cannot split the task of computing big Fibonacci number, since later ones depend on previous. </p> <p>Same for large amounts of data. If you have collected array of points and want to find some concrete points (bigger then some constant, max of all) or just collect statistical information (sum of coordinates, number of occurrences), use parallel computations. If you need to collect "ongoing" information (longest rising sequence)... well, this is still possible, but much harder. </p> <p>The difference between servers and client PCs is that client PCs doesn't have many cores, and <strong>parallel computations on single core will only decrease performance, not increase</strong>. So, do not create more threads than the number of user PC's cores is (same for computing clusters: do not split the task on more subtasks than the number of computers in cluster is).</p> <p><strong><a href="http://hadoop.apache.org/mapreduce/" rel="nofollow">Hadoop's MapReduce</a></strong> allows you to create parallel computations efficiently. You can also search for more specific Java libraries which allow evaluating in parallel. For example, <a href="http://sites.google.com/site/piotrwendykier/software/parallelcolt" rel="nofollow">Parallel Colt</a> implements high performance concurrent algorithms for work with big matrices, and there're lots of such libraries for many data representations.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload