using cuda for solar thermal plant computation. background problem solution algorithm polygon...
TRANSCRIPT
Using CUDA for Solar Thermal Plant Computation.
Background Problem Solution Algorithm Polygon Clipping Why CUDA? Progress
Our Team. Claus Nilsson Sahithi Chalasani Pranav Mantini Arun Kumar
Subramanian
Instructor:Dr.Bun yueMentor:Michel Izygon
Background Structure
Central receiver A type of solar furnace. Receives the sunlight
redirected by Heliostats. Heliostat
A type of mirror. redirects sunlight towards
the central receiver.
Background. Field
Generally huge Heliostats are placed in
a radial stagger formation.
Broken into Grids containing cells.
Each cell has one representative heliostat and about 8 to 80 neighbor(hypothetical) heliostats.
Background. Shading and Blocking.
A field of heliostats suffers loss in efficiency caused by shading and blocking by neighbouring heliostats.
For our purpose we assume that shading and blocking occurs only within a cell.
Shading is the loss of illumination on a given mirror due to the interception of the incident sunlight by a neighboring mirror. [3]
Blocking is the loss of illumination on the central receiver due to the interception of reflected sunlight by another neighboring mirror. [3]
Background.
Problem. Solar thermal fields in general have considerably
large number of heliostats. A computation algorithm to calculate shading and
blocking has been designed and implemented by Tietronix Software, Inc.
This computation algorithm takes significant amount of time to calculate shading and blocking for thousands of heliostat.
The objective is to decrease the computation time.
Solution. To increase the efficiency of this computation
algorithm, Tietronix Software, Inc. has proposed to create an application that computes the shading and blocking among the heliostats simultaneously.
For this purpose, CUDA(Compute Unified Device Architecture), a parallel computing architecture was chosen.
Algorithm. An algorithm was designed by Mr. Peter
Armstrong of Tietronix Software, Inc., to calculate the shading and blocking among the heliostats.[4]
This algorithm makes use of Vector Mathematics, including vector projection and a polygon clipping algorithm.
Algorithm.
origin
TOWER
Heliostat
TS=OS -C
OT - C
NNormal
Algorithm.
Algorithm.
Shadingv
Shading
Algorithm.
Polygon Clipping. Sutherland-Hodgman Algorithm:
Most used algorithm for clipping convex polygons. Uses a divide-and-conquer strategy. Window must be a convex polygon Polygon to be clipped can be convex or not
Example The original polygon and the clip rectangle.
Example After clipped by the right clip boundary.
Example After clipped by the right, bottom, and left clip
boundaries.
Example After clipped by all four boundaries.
Why this algorithm? It is relatively simple. Relatively straightforward and is easily implemented in C. Very efficient in two important cases. i) when the polygon is completely inside the boundaries. ii) when it's completely outside.
CUDA What is CUDA
◦ Scalable programming model and◦ Software environment for parallel computing [2]
◦ Extension to the C programming language
CUDA What CUDA does
Allows utilization of GPU Allows parallel execution of code
Kernels Manages threads automatically
Exception: __syncthreads()
CUDA Example
Source: “Parallel Processing With CUDA” by Tom R. Halfhill [1]
CUDA
Scaling
CUDA How does it work
CUDA
CUDA
CUDA
CUDA
Progress. Two Tower Demo. Full Cell. (linear) Full Cell. (Parallel) Full Grid. (linear) Full Grid. (parallel)
Progress. Two Tower Demo:
Successfully calculated the vertices of the neighbor and the representative heliostat.
Working on the projected vertices and polygon clipping algorithm.
Full Cell Demo: Created the eight neighbors and generated the unit
normal vector to the heliostats Working on the vertices and projected vertices.
Progress. Two Tower Demo.
Input: Tower height - 63.07 meters. The coordinates of the center of each heliostat are: 2002(source) -100 0 5
2003(neighbor) -100 10 5 Heliostats - 5 meters by 5 meters square. sun azimuth - 89.9779 degrees. sun elevation - 15.0007 degrees. Date - 20 March 2008 at 07:07:27.4 UTC with the field origin located
at latitude 0, longitude 0, elevation 0.
Progress. Full Cell Demo.
Input: Tower height - 63.07 meters. Heliostats - 4.5 meters by 4.5 meters square. no. of rows , columns – 10 & 10 respectively. Row and column of the tower – 10 & -1 respectively. Date - 09/22/2009 11:40:06.7326 UTC-8 sun azimuth - 179.999984302 degrees. sun elevation - 55.1633384647 degrees. Site – elevation 670 latitude 34.863 longitude -116.887
References[1] Tom R. Halfhill. Parallel Processing With CUDA.
Microprocessor, 01/28/08-01, www.nvidia.com/docs/IO/55972/220401_Reprint.pdf
[2] Greg Ruetsch, Brent Oster. Getting Started with CUDA. http://www.nvidia.com/content/cudazone/download/Getting_Started_w_CUDA_Training_NVISION08.pdf
References
[3] Lipps, F. W.; vant-Hull, L. L., Shading and blocking geometry for a solar tower concentrator with rectangular mirrors, American Society of Mechanical Engineers, Winter Annual Meeting, New York, N.Y., Nov. 17-22, 1974, 7 p. NSF-supported research.
[4] Peter Armstrong, An Algorithm For Shading And Blocking Computation Of A Field Of Heliostats Arranged In A Grid Layout.
References [5] Polygon clipping,
http://www.cc.gatech.edu/classes/AY2003/cs4451a_fall/ClippingApplets%20Folder/Sutherland-Hodgeman/index.html
http://www.codeguru.com/cpp/misc/misc/graphics/article.php/c8965
http://www.aftermath.net/library/articles/clippoly/clippoly.pdf
http://www.cc.gatech.edu/grads/h/Hao-wei.Hsieh/Haowei.Hsieh/sec3_step.html
Thank You!Any Questions?