2. Assembling and Running a CCA Application

In this exercise, you will work with pre-built components from the integrator example to compose several CCA-based applications and execute them. The integrator application is a simple example, designed to illustrate the basics of creating, building, and running component-based applications without scientific complexities a more realistic application would also present. The purpose of this application is to numerically integrate a one-dimensional function. Several different integrators and functions are available, in the form of components. A ``driver'' component controls the calculation, and for the Monte Carlo integrator, a random number generator is also required. The specific components available are shown in Table 2.1.


Table 2.1: Integrator Application Components (details may vary depending on the languages your CCA tools installation is configured for).
Components Notes
Drivers Identical functionality, illustrating components in different languages.
  drivers.CXXDriver
  drivers.F90Driver
  drivers.PYDriver
Integrators Various integration algorithms
  integrators.Boole  
  integrators.MonteCarlo  
  integrators.Midpoint  
  integrators.Simpson  
  integrators.Simpson38  
  integrators.Trapezoid  
Functions  
  functions.CosFunction cos(x) ; integrates to sin(1) $ \approx$ 0.841
  functions.CubeFunction x3 ; integrates to 0.25
  functions.LinearFunction x ; integrates to 0.5
  functions.PiFunction $ {\frac{{4}}{{1+x^2}}}$ ; integrates to $ \pi$
  functions.QuinticFunction x5 -4x4 ; integrates to $ {\frac{{1}}{{6}}}$ - $ {\frac{{4}}{{5}}}$ $ \approx$ - 0.633
  functions.SquareFunction x2 ; integrates to $ {\frac{{1}}{{3}}}$
Random Number Generators  
  randomgens.RandNumGenerator Required for Monte Carlo integration

The Ccaffeine framework provide three different ways for users to interact with it in order to assemble and run CCA applications. You can type commands in yourself at the framework's prompt, execute a script containing those same commands, or use a graphical user interface.2.1The graphical approach is the easiest for most people to get a feel for how components work, so we will start with that (Section 2.1) and later discuss how actions in the GUI map onto instructions in a script (see Section 2.2).

In practice, most users set the GUI interface aside after they become more comfortable with the CCA environment in favor of the scripting approach. That's especially true once they've developed a bunch of components and want to run simulations with them in batch jobs, where GUIs tend not to be so convenient. Of course it is entirely up to you which approach you use in the long run.



Subsections
2010-08-11