# Difference between revisions of "GPU610/Turing"

(→Team Members) |
(→Assignment 1) |
||

Line 10: | Line 10: | ||

== Progress == | == Progress == | ||

=== Assignment 1 === | === Assignment 1 === | ||

+ | |||

+ | For assignment 1 we each looked at a different application to profile. Colin profiled a 2d Diffusion equation program. Chaddwick profiled data decomposition and James profiled an image manipulation function. | ||

+ | |||

+ | ==== Colin's Findings ==== | ||

+ | I found a python script located at http://www.timteatro.net/2010/10/29/performance-python-solving-the-2d-diffusion-equation-with-numpy/ that uses a nested For Loop to calculate the diffusion equation. I translated the script into C++ and profiled it using XCode's native profiler. | ||

+ | |||

+ | ===== Example ===== | ||

+ | The program accepts a single number to specify the size of a square matrix and runs the equation 100 times. When run with a 10000x10000 matrix this is the result: | ||

+ | [[Image:GPU610_Turing_A1Profile_10k.jpg|600px]] | ||

+ | |||

+ | ===== Potential for parallelism ===== | ||

+ | [[Image:Screenshot 2015-10-13 20.21.04.jpg|600px]] | ||

+ | |||

+ | This is the function that takes most of the time. As you can see it it a single nested for loop that calculates a value from Matrix ui and stores it in Matrix u. Because the first matrix is never changed in each step, the result can therefore be calculated in independent threads safely. this means that this code should be relatively simple to parallelize and should see large speed increases. | ||

+ | |||

=== Assignment 2 === | === Assignment 2 === | ||

=== Assignment 3 === | === Assignment 3 === |

## Revision as of 20:55, 13 October 2015

GPU610/DPS915 | Student List | Group and Project Index | Student Resources | Glossary

## Contents

# Team Turing

## Team Members

- Colin Campbell, Some responsibility
- James Shin, Some other responsibility
- Chaddwick Bailey, Some other responsibility

## Progress

### Assignment 1

For assignment 1 we each looked at a different application to profile. Colin profiled a 2d Diffusion equation program. Chaddwick profiled data decomposition and James profiled an image manipulation function.

#### Colin's Findings

I found a python script located at http://www.timteatro.net/2010/10/29/performance-python-solving-the-2d-diffusion-equation-with-numpy/ that uses a nested For Loop to calculate the diffusion equation. I translated the script into C++ and profiled it using XCode's native profiler.

##### Example

The program accepts a single number to specify the size of a square matrix and runs the equation 100 times. When run with a 10000x10000 matrix this is the result:

##### Potential for parallelism

This is the function that takes most of the time. As you can see it it a single nested for loop that calculates a value from Matrix ui and stores it in Matrix u. Because the first matrix is never changed in each step, the result can therefore be calculated in independent threads safely. this means that this code should be relatively simple to parallelize and should see large speed increases.