Monday, March 29, 2010

Performance comparison of Tonatiuh releases 0.9.4 and 0.9.5

One way to quantify the advances in performance obtained with every new release of Tonatiuh is to compare the time each release of the program takes in tracing the same number of rays throughout the same solar concentrating geometry and sun position configuration.

We decided to do this by measuring the time each new release of the program takes in tracing 6 million rays over the geometry of the NREL Solar Furnace and the sun position configuration defined in the file “SolarFurnace_normal.tnh” that can be found in the Downloads section of the Tonatiuh website at Google code.

Since the execution time of a program strongly depends on the computational capabilities of the computer in which the program is run (i.e., the CPU type, the frequency of its clock, the amount of RAM available, etc.), and in the operating system used, we have selected a sample of three computers in which to measure the time each new release of Tonatiuh takes in casting 6 million rays over the NREL solar Furnace configuration previously mentioned, under both Windows 7 and Kubuntu 9.10.

The results of the comparison between the current release of Tonatiuh (version 0.9.5) and the previous one (version 0.9.5) are shown in the following figure.

From Tonatiuh Blog Figures


From these results the following conclusions can be drawn:
  • The two releases of Tonatiuh run almost two times faster under Linux than under Windows. This may be due to a difference in the quality of the executable code generated by the Windows C++ compiler (MinGW) and the Linux C++ compiler (GCC).
  • Since neither of the two releases make use of parallel computing capabilities within their ray tracing loop they run faster in the computers operating at the higher frequency rates.
  • The increase in ray casting performance of release 0.9.5 with respect to the previous release of Tonatiuh is substantial. In casting 6 million rays towards the NREL Solar Furnace, it takes of the order of 18.5% less time under Windows 7, and of the order of 6.7 % less time under Linux, than Tonatiuh release 0.9.4.

Friday, March 26, 2010

Release of version 0.9.5 of Tonatiuh

On March 25, Tonatiuh version 0.9.5 was released. This new release of Tonatiuh is available for downloading at the program's main website: tonatiuh.googlecode.com

This new version of the program offers the following improvements over the previous version:

  • It improves the shape plugin "Parabolic_rectangle" so that the new version of the plugin is better suited to simulate the geometry of rectangular heliostat parabolic facets.
  • It allows the user to select the "active side" of a surface from a Coin 3D point of view (i.e. just for representation purposes). This active side determines how the surface is illuminated within Coin and represented in Tonatiuh's 3D window. While it does not change the ray tracing behavious of the shapes, it can greatly improve the way it is visualized.
  • It adds a new button to the GUI that allows the user to change the view of the scene, in order to view it from the Sun perspective, i.e. from the surface from which the sun rays are cast into the solar concentrating system.
  • I adds a new entry to the View menu named "Grid settings..." which allow to change the overal dimension of the reference grid, as well, as the dimension of the cells that compose it.
  • It solve a bug in the program related to the export of the photon map in global coordinates.
  • It streamlines parts of the core raytracing functions of the program to speed it up.

Saturday, March 6, 2010

Release of version 0.9.4 of Tonatiuh

On February 26, Tonatiuh version 0.9.4 was released. This new release of Tonatiuh is available for downloading at the program's main website: tonatiuh.googlecode.com

This new version of the program offers the following improvements over the previous version:
  • It fixes two bugs found in the code. One that precluded the program to show in the 3D pane of the GUI the rays traced by the program, and other that made the program crash when the user changed the position of the Sun, after tracing rays.
  • It introduces a new type of plugin: The random number generator or uniform deviate. While in previous releases of the program random numbers where generated by a specific class within the core program. In this new release the architecture of the program, and its user interface, has been changed to allow the user to specify which random number generator plugin he or she wants to use. In addition to this, two state-of-the-art random number generators have been coded into plugin form to give the users the option to select either of them, or two develop and use their own plugin.