Difference between revisions of "GPU610/DPS915 CUDA PI"
Peter Huang (talk | contribs) (→Progress) |
Peter Huang (talk | contribs) (→Code Snippet) |
||
Line 23: | Line 23: | ||
==== '''Code Snippet''' ==== | ==== '''Code Snippet''' ==== | ||
− | + | // loops through user amount of rounds of sets of points | |
− | + | for(i = 0; i < points; i++) | |
− | for(i = 0; i < points; i++) | + | { |
− | { | + | x = randNum(); |
− | x = randNum(); | + | y = randNum(); |
− | y = randNum(); | + | |
− | + | // check if point resides within the circle | |
− | // check if point resides within the circle | + | if (((x*x) + (y*y)) <= 1.0) |
− | if (((x*x) + (y*y)) <= 1.0) | + | { |
− | { | + | score++; |
− | score++; | + | } |
− | } | + | } |
− | } | + | // calculate pi |
− | + | pi = 4.0 * (float)score/(float)points; | |
− | // calculate pi | ||
− | pi = 4.0 * (float)score/(float)points; | ||
− | |||
− | |||
==== '''Compilation and Running''' ==== | ==== '''Compilation and Running''' ==== |
Revision as of 00:25, 4 November 2013
GPU610/DPS915 | Student List | Group and Project Index | Student Resources | Glossary
Contents
CUDA PI Calcuation (Monte Carlo)
Team Pi CUDA
Welcome to GPU610AA Fall 2013 Team Pi CUDA Page.
My name is Peter Huang and I'm a student in the GPU610 class for the Fall Semester of 2013. Having no background whatsoever in parallel programming, I've decided to choose something that is out of my scope of understanding and interest (video game programming) to challenge myself. Thus, I've decided to investigate the benefits of parallel programming applied to the Monte Carlo statistical method to approximating the value of pi.
Announcements
N/A
Team Members
Progress
Assignment 1
Introduction
For the initial profiling, I've decided to investigate the Monte Carlo Statistics Methodology of approximating the value of Pi. A brief explanation of Monte Carlo Pi calculation can be found here: https://www.youtube.com/watch?v=VJTFfIqO4TU
Source File(s)
Link: https://drive.google.com/file/d/0B8GUuIUqdEJES3VEOGRnYmRNaEk
Code Snippet
// loops through user amount of rounds of sets of points for(i = 0; i < points; i++) { x = randNum(); y = randNum(); // check if point resides within the circle if (((x*x) + (y*y)) <= 1.0) { score++; } } // calculate pi pi = 4.0 * (float)score/(float)points;
Compilation and Running
Serial Results
Assignment 2
Introduction
In Phase 2, I've parallelized the serial program to run on a custom kernel on a CUDA-enabled device.
Compilation and Running
Parallel (CUDA) Results
Serial VS CUDA
Source File(s)
Link: https://drive.google.com/file/d/0B8GUuIUqdEJEbDBRNkhWYnpGSnM
Conclusion
Assignment 3
Agenda
N/A
Progress
N/A
Meetings
N/A
Discussion
N/A