XCAT-C++: User Guide

  1. What is the CCA Component Model?

    The Common Component Architecture (CCA) specification is an initiative to develop a common architecture for building large scale scientific applications. CCA places minimal requirements on components to facilitate the integration of existing scientific libraries into a CCA framework and also to minimize the impact of the component layer on performance. The component specification of CCA is expressed as a set of interfaces that precisely state the expected behavior for component-to-component and component-to-framework interaction. The specification does not mandate the use of any specific form of distributed or parallel technology as the underlying communication architecture, thereby ensuring that it does not preclude applicability to serial, parallel, distributed or Grid systems. This approach explicitly facilitates research groups to focus on utilizing the same high level component specification for a wide range of distributed and parallel applications. The functionality provided by a component may be used in a wide variety of applications. Also, a number of different components can provide the same functionality by implementing the same set of component interfaces.


  2. XCAT-C++ dependencies:


  3. Compiling XCAT-C++.


  4. Setting a debug level for XCAT-C++ components


  5. Running XCAT-C++ with the python front-end.


  6. Running XCAT-C++ with the C++ front-end


  7. Running XCAT-C++ components from the command-line.


  8. Debugging tips for XCAT-C++


  9. Writing a new XCAT-Component We explain with reference to two components: "generator" and "printer."


  10. Compiling a new XCAT-C++ component


  11. Compiling a new provider added to xct.


  12. Setting up SSH access between machines with an empty passphrase. Assume that you need to setup SSH connection between two machines, t2-fe and t3-fe, and want to "ssh" between them without typing a password. The easiest way to accomplish this is to generate your keys on one machine (t3-fe) and copy them to the other machne (t2-fe). Here are the set of commands that you need to run (assuming that the username is john_doe).
    
    [john_doe@t3-fe john_doe]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/john_doe/.ssh/id_rsa):
    /home/john_doe/.ssh/id_rsa already exists.
    Overwrite (y/n)? y
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/john_doe/.ssh/id_rsa.
    Your public key has been saved in /home/john_doe/.ssh/id_rsa.pub.
    The key fingerprint is:
    cc:fa:a7:d3:05:dc:04:61:25:35:06:f5:ef:c8:02:50 john_doe@t3-fe.sci.gsfc.nasa.gov
    [john_doe@t3-fe john_doe]$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    [john_doe@t3-fe john_doe]$ scp .ssh/id_rsa .ssh/id_rsa.pub t2-fe:.ssh/
    id_rsa                                                                                                                            100%  887     0.9KB/s   00:00
    id_rsa.pub                                                                                                                        100%  238     0.2KB/s   00:00
    [john_doe@t3-fe john_doe]$ ssh t2-fe "cat .ssh/id_rsa.pub >> .ssh/authorized_keys"
    
    [john_doe@t3-fe john_doe]$ chmod 755  .
    
    
    [john_doe@t3-fe john_doe]$ scp -r .ssh/ t2-fe:
    id_rsa                                                                                                                            100%  887     0.9KB/s   00:00
    id_rsa.pub                                                                                                                        100%  238     0.2KB/s   00:00
    authorized_keys                                                                                                                   100% 4067     4.0KB/s   00:00
    known_hosts                                                                                                                       100% 2492     2.4KB/s   00:00
    config                                                                                                                            100%  144     0.1KB/s   00:00
    [john_doe@t3-fe john_doe]$
    
    
    
    


  13. XCAT-C++ Code Structure