charm AT lists.siebelschool.illinois.edu
Subject: Charm++ parallel programming system
List archive
- 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
- [charm] splitting .ci files into multiples, Evghenii Gaburov, 03/14/2012
- Re: [charm] [ppl] splitting .ci files into multiples, Phil Miller, 03/17/2012
Archive powered by MHonArc 2.6.16.