Charm++ - Example

Example

Here is some Charm++ code for demonstration purposes:

Header file (hello.h)
#ifndef __HELLO_H__ #define __HELLO_H__ class Hello : public CBase_Hello { public: /// Constructors /// Hello; Hello(CkMigrateMessage *msg); /// Entry Methods /// void sayHi(int from); }; #endif //__HELLO_H__
Interface file (hello.ci)
module hello { array Hello { entry Hello; entry void sayHi(int); }; };
Source file (hello.C)
#include "hello.decl.h" #include "hello.h" #include "main.decl.h" extern /* readonly */ CProxy_Main mainProxy; extern /* readonly */ int numElements; Hello::Hello { // Nothing to do when the Hello chare object is created. // This is where member variables would be initialized // just like in a C++ class constructor. } // Constructor needed for chare object migration (ignore for now) // NOTE: This constructor does not need to appear in the ".ci" file Hello::Hello(CkMigrateMessage *msg) { } void Hello ::sayHi(int from) { // Have this chare object say hello to the user. CkPrintf("\"Hello\" from Hello chare # %d on " "processor %d (told by %d).\n", thisIndex, CkMyPe, from); // Tell the next chare object in this array of chare objects // to also say hello. If this is the last chare object in // the array of chare objects, then tell the main chare // object to exit the program. if (thisIndex < (numElements - 1)) thisProxy.sayHi(thisIndex); else mainProxy.done; } #include "hello.def.h"

Read more about this topic:  Charm++

Famous quotes containing the word example:

    Our intellect is not the most subtle, the most powerful, the most appropriate, instrument for revealing the truth. It is life that, little by little, example by example, permits us to see that what is most important to our heart, or to our mind, is learned not by reasoning but through other agencies. Then it is that the intellect, observing their superiority, abdicates its control to them upon reasoned grounds and agrees to become their collaborator and lackey.
    Marcel Proust (1871–1922)