Skip to Content.
Sympa Menu

charm - [charm] splitting .ci files into multiples

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

[charm] splitting .ci files into multiples


Chronological Thread 
  • From: Evghenii Gaburov <egaburov.work AT gmail.com>
  • To: charm AT cs.uiuc.edu
  • Subject: [charm] splitting .ci files into multiples
  • Date: Wed, 14 Mar 2012 09:57:32 -0500
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Hi All,

I was wondering if it is possible to separate definition of a method and SDAG
implementation into two or more separate *.ci files.

For example, I have a typical .ci file:

myModule.ci:
mainmodule myModule
{
mainchare Main { ...

array [1D] Simulation
{
entry void r1a(..);
entry void r1b(..);
entry void g1(..)
{
atomic { many_code_lines }
for (imsg = 0; imsg < nmsg; imsg++)
when r1a(..) atomic { many_code_lines }
for (imsg = 0; imsg < nmsg; imsg++)
when r1b(..) atomic { many_code_lines }
atomic { many_code_lines}
}
...
entry void rNa(..);
entry void rNb(..);
entry void gN(..) { .. };

}
}

with many entries in array [1D] Simulation are written in SDAG, so the .ci
file becomes rather large in code-line count and hard to maintain.

Is there a way to split the array's method definitions and their SDAG
implementation into two different *.ci files, e.g.

g1.ci:
mainmodule g1
{
array [1D] Simulation
{
entry void r1a(..);
entry void r2a(..);
entry void g1() {...}
}
}
...

gN.ci:
mainmodule gN
{
array [1D] Simulation
{
entry void rNa(..);
entry void rNa(..);
entry void gN() {...}
}
}

When I try it in this way, it complains: error: redefintion of class
CkIndex_Simulation, CkProxyElement_Simulation, etc. Any help will be of great
value!

Thanks!

Cheers,
Evghenii




Archive powered by MHonArc 2.6.16.

Top of Page