Benchmark Description Sample Clauses
Benchmark Description. Ray tracing is a technique used in computer graphics for generating (also called rendering) an image from a scene description [10]. The scene description contains information on all objects present in the scene and is usually implemented as a list consisting of geometric objects. A scene is generally an approximation of the reality and can be described using various different geometric primitives. In addition to all objects present in the scene, the scene description also contains information on the camera position, direction, and viewing angle. With the information contained in the scene description, an application is now able to render an image of the scene. This can be thought of as corresponding to the act of taking an actual photograph in real life. The algorithm we are using to render the image is called path tracing. It is very similar to ray tracing, with a slight adjustment, which has the advantage of being able to generate more advanced optical effects, such as caustics and soft shadows. Ray tracing applications naturally consist of three logic parts. The first part of the application comprises the generation of the rays. The next part is the second and most computational intensive part of the application, the intersection of the rays with the scene, which is to be rendered. Lastly, the calculated values are aggregated and stored to an image file in the third part. We decided to use this partition for the process network specification, as it allows us to neatly separate the intersection part, which we are interested in parallelizing as it has the biggest contribution to the application’s total execution time. The resulting layout of the process network is illustrated in Figure 2-4. In the resulting implementation, the Generator process calculates all rays and sends them to the Intersect processes, which is where the actual path tracing takes place by calling the process’s radiance method, which recursively calls itself until either no object was intersected or the maximum depth has been reached. intersection (I) generator (G) summation (S) intersection (I) Various extensions of the basic process network have been considered to improve the performance of the ray tracing application on systems with more than three cores. First, multiple instances of the Intersect process might calculate different paths in parallel. Thus, the Generator process alternates the output port between rays, in order for all replicated Intersect processes to receive the r...
Benchmark Description. sort div mer sort We particularly consider a quicksort algorithm. The EPN specification is illustrated in Figure 2-6 and Figure 2-7. Process “src” (“dest”) generates (displays) the input (output) array, and process “sort” sorts the elements in ascending order. As the quicksort algorithm recursively sorts the array, process “sort” can be replaced by a structural description. “div” first partitions the array into two groups: the first group contains the elements that are smaller than the median value and the second group contains the remaining elements. The divided arrays are individually sent to a different instance of the “sort” process. Finally, the individually sorted sub-arrays are merged into a single array. Thus, by recursively unfolding the “sort” process, the original topology can be transformed to have more tasks. As the length of the array that each “sort” process has to sort is halved in each recursion step, the execution time is reduced with each recursion step, as well. src sort dest Figure 2-6. Top-level process network of the quicksort algorithm. Figure 2-7. Structural description of the process "sort".
