SOLAR THERMAL PLANT DESIGN AND OPERATION SUITE OF TOOLS COMPUTATION USING OPENCL Instructor: Dr.Perez Davila
MENTOR INFORMATION TEAM INFORMATION Mr. Peter Armstrong - peter.armstrong-1@tietronix.com Tietronix Software Inc. , 1331 Gemini Avenue, Suite 300 Houston, TX 77058. Website: www.tietronix.com TEAM INFORMATION Ramesh Pathuri - pathurir8276@uhcl.edu Manasa Ravi - ravim7968@uhcl.edu Ravinder Rao Chikkaraju - chikkarajur0446@uhcl.edu Sunil Alasyam - alasyams8391@uhcl.edu CSCI 6838 Team-3 12/2/2018
AGENDA Solar Thermal Plant Overview Introduction Project Objective Requirements Problem Specifications Use case Diagram Sequence Diagram Workflow Diagram System Architecture Implementation Polygon Clipping OpenCL Technology Demo Progress References CSCI 6838 Team-3 12/2/2018
Solar Thermal Plant Overview Solar thermal power plants are used to generate electricity from the energy of the sun. Heliostat-Movable mirrors that are used in the solar energy power plants. CSCI 6838 Team-3 12/2/2018
Solar Thermal Plant Overview Tower with Receiver Heliostats CSCI 6838 Team-3 12/2/2018
INTRODUCTION Shading occurs when a heliostat casts its shadow on another heliostat located behind it. Blocking occurs when a heliostat in front of another heliostat, blocks the reflected suns energy on its way to the receiver. CSCI 6838 Team-3 12/2/2018
PROJECT OBJECTIVE To develop a suite of software that can support the solar plant designers in computing the shading and blocking of a field of heliostats in real time. To calculate the position of the sun. To produce a continuously updated 2D color contour map that represents the overall efficiency of the heliostat field. CSCI 6838 Team-3 12/2/2018
REQUIREMENTS To read a text file in the format of ID,S,E,Z,R. To set the heliostat width and height, the pedestal height, receiver radius, and tower focal height entered by user. To find out the sun position at the date and time entered in by the user. To display the azimuth and elevation of the sun. To compute the vertices of all heliostats in the field. To compute the shading and blocking of each heliostat. To render a 2D contour map of heliostat field. CSCI 6838 Team-3 12/2/2018
PROBLEM SPECIFICATIONS Find the equation of the plane of target mirror. Find the co-ordinates of the target mirror on the absolute coordinate system. Find the co-ordinates of the source mirror on the absolute coordinate system. Compute the sun vector(X,Y,Z) in the absolute coordinate system. Compute the projections of the source mirror corners with respect to sun vector on to the target mirror plane. Compute the intersection area of the target mirror and the projected plane. CSCI 6838 Team-3 12/2/2018
USE CASE DIAGRAM CSCI 6838 Team-3 12/2/2018
Flowchart CSCI 6838 Team-3 12/2/2018
SEQUENCE DIAGRAM CSCI 6838 Team-3 12/2/2018
WORK FLOW DIAGRAM CSCI 6838 Team-3 12/2/2018
SYSTEM ARCHITECTURE CSCI 6838 Team-3 12/2/2018
IMPLEMENTATION Calculate the sun position. Vertices calculation. 8-closest neighbors. Area of each heliostat. Cosine effect of each heliostat. Polygon Clipper. CSCI 6838 Team-3 12/2/2018
POLYGON CLIPPING Removal of part of an object outside a polygon. Polygon clipping is particularly difficult because it is necessary that closed polygon remain closed. Clipping a polygon can result in several disjoint polygons. A polygon clipper takes as input the vertices of a polygon and returns one or more polygons. CSCI 6838 Team-3 12/2/2018
WORKING OF POLYGON CLIPPING The input to the clipper. Output of a clipper. Clipping process for a polygon. CSCI 6838 Team-3 12/2/2018
USE OF POLYGON CLIPPING SHADING BLOCKING CSCI 6838 Team-3 12/2/2018
Pseudo code dy:=y2-y1; dx:=x2-x1; m= dy/dx; if(x1<a4 & x2>a4) flag:=0; if (x1>=a4 & x2>=a4) flag:=1; if(x1>=a4 & x2<a4) flag:=2; CSCI 6838 Team-3 12/2/2018
Pseudo code flag0: x=a4 if diy!=0 y=y1 + m(x-x1); else y=y1; flag1: x=x2;y=y2; flag2: x=a4; if dy!=0 y=y1+m(x-x1); CSCI 6838 Team-3 12/2/2018
Applied Technologies CUDA is NVIDIA’s parallel computing architecture that enables dramatic increases in computing performance by harnessing the power of the GPU. A CUDA device is built around a scalable array of multithreaded Streaming Multiprocessors(SMs). CSCI 6838 Team-3 12/2/2018
CUDA CUDA Features: CUDA driver is used for computing with fast data transfer path between GPU and CPU. CUDA driver interoperates with OpenCL and DirectX graphics drivers. It supports for Linux and Windows XP. GPUs have a parallel "many-core" architecture, and each core can run thousands of threads simultaneously. CSCI 6838 Team-3 12/2/2018
OPENCL OpenCL (Open Computing Language) is a new heterogeneous computing environment, that runs on the CUDA architecture. It will allow developers to harness the massive parallel computing power of NVIDIA GPU’s to create compelling computing applications. To accelerate parallel computation. Used to speedup computationally intensive applications. Write accelerated portable code across different devices and architectures. CSCI 6838 Team-3 12/2/2018
OpenCL Execution Model Kernel Basic unit of executable code -similar to a C function Data-parallel or task-parallel Program Collection of kernels and other functions Analogous to a dynamic library CSCI 6838 Team-3 12/2/2018
Data-Parallelism in OpenCL Kernels executed across a global domain of work-items Global dimensions define the range of computation One work-item per computation, executed in parallel Work-items are grouped in local workgroups Local dimensions define the size of the workgroups Executed together on one device Share local memory and synchronization CSCI 6838 Team-3 12/2/2018
Memory Management CSCI 6838 Team-3 12/2/2018
Kernel Mechanism in OpenCL CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
Screenshots CSCI 6838 Team-3 12/2/2018
demo CSCI 6838 Team-3 12/2/2018
Future Enhancements Integrating the shading and blocking in OpenCL. Updating the 2-D contour map. Performance improvement. CSCI 6838 Team-3 12/2/2018
Team Roles 1. Ramesh Pathuri Team Leader, Research , Programmer and Documentation. 2. Manasa Ravi Algorithm, programmer and Documentation . 3. Sunil Alasyam Research, Testing and Programmer. 4. Ravinder Rao Chikkaraju Designer, programmer and Webmaster. CSCI 6838 Team-3 12/2/2018
references Peter Armstrong. An Annotated Algorithm for Shading and Blocking Computations of a Field of Heliostats Arranged in a Grid Layout. Available from Tietronix Software, Inc.; received February 4 2010. http://www.khronos.org/opencl/ http://www.khronos.org/developers/library/overview/opencl_overview.pdf http://www.nvidia.com/object/cuda_opencl_new.html http://2.bp.blogspot.com/_0A8DCf9FR68/Sk4bWJI54hI/AAAAAAAAAL4/zY57UgUhoA0/s400/solar-1.jpg CSCI 6838 Team-3 12/2/2018
Thank you CSCI 6838 Team-3 12/2/2018