Monday April 14, 2014
Turning a serial (non-parallel) algorithm into a parallel one involves identifying where data and task dependencies exist. This problem challenges you to identify data and task dependencies for a given serial algorithm.
Previous problems have challenged you to create an algorithm for an application involving particles precipitating in a solution.

See http://hpcuniversity.org/students/weeklyChallenge/72/ and the "Precipitate Algorithm Solution txt" file below.

Your task is to take this algorithm and identify data and task dependencies within it.

A data dependency is an area of the algorithm in which a step cannot occur until certain data is set. For example, step 1b of the randomizePositions function cannot occur until the random number is set.

A task dependency is an area of the algorithm in which a step cannot occur until another step occurs first. For example, step 3 of the tryMove function cannot occur before step 2 of the same function occurs.

List all data and task dependencies you can find in the algorithm.
Show solution
Challenge Resources:
©1994-2024   |   Shodor   |   Privacy Policy   |   NSDL   |   XSEDE   |   Blue Waters   |   ACM SIGHPC   |   feedback  |   facebook   |   twitter   |   rss   |   youtube   |   XSEDE Code of Conduct   |   Not Logged In. Login