Skip to Content.
Sympa Menu

charm - Re: [charm] [ppl] charm vs AMPI

charm AT lists.cs.illinois.edu

Subject: Charm++ parallel programming system

List archive

Re: [charm] [ppl] charm vs AMPI


Chronological Thread 
  • From: Evghenii Gaburov <e-gaburov AT northwestern.edu>
  • To: "Kale, Laxmikant V" <kale AT illinois.edu>
  • Cc: "charm AT cs.uiuc.edu" <charm AT cs.uiuc.edu>, Gengbin Zheng <zhenggb AT gmail.com>
  • Subject: Re: [charm] [ppl] charm vs AMPI
  • Date: Tue, 8 Nov 2011 23:49:41 +0000
  • Accept-language: en-US
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/charm>
  • List-id: CHARM parallel programming system <charm.cs.uiuc.edu>

Hi,

> We shave many more examples of structured dagger now, and we will add them
> to the documentation soon; but you could start exploring them with the
> manual and any example program from the cha++ distribution. If you are
> interested, I will send you a chapter about it.
Yes, please, I would love to have a look at this chapter. Perhaps this will
explain how can I implement it in my code.

Thanks!

Cheers,
Evghenii

>
> What AMPI can do, that dagger cannot, is to be able to block for remote
> data deep inside a function call sequence (f calls g calls h, which then
> blocks for a receive). With dagger, you bring up all remote dependencies
> at the top level, in the run method in the .ci file. This is a matter of
> style, and some prefer one over the other. But it gives a good separation
> of concerns, which we find especially useful when working in a
> collaborative application. The application scientist can focus on the
> sequential code, once the parallel structure and remote dependences are
> agreed upon, and encoded in the structured dagger notation.
>
>
> --
>
> Laxmikant (Sanjay) Kale http://charm.cs.uiuc.edu
> <http://charm.cs.uiuc.edu/>
> Professor, Computer Science
> kale AT illinois.edu
> 201 N. Goodwin Avenue Ph: (217) 244-0094
> Urbana, IL 61801-2302 FAX: (217) 265-6582
>
>
>
>
>
>
> On 11/8/11 1:23 PM, "Evghenii Gaburov"
> <e-gaburov AT northwestern.edu>
> wrote:
>
>> Hi,
>>
>> Thanks for prompt replies.
>>
>> I guess my question is if I were to start a project is there advantage of
>> me to use Charm over AMPI. One thing with AMPI, is that is can have a
>> nice program flow like a normal MPI codes, with barriers and All_reduce ,
>> e.g.
>>
>> Š do-work1 ..
>> MPI_Barrier(..)
>> .. do-work2 Š
>> MPI_Exchange()
>> .. do-work3
>> MPI_Allreduce Š
>> finish-work
>>
>> in one subroutine.
>>
>> With Charm, as I have understood, it requires several method to be called
>> at each Barrier, exchange, reduction (via contribute, for example), and
>> cannot be done in single routine. This kind of breaks the program flow,
>> e.g.
>>
>> do_work1
>> { Š
>> contribute(do_work2) // MPI_Barrier(..)
>> }
>> do_work2()
>> {
>> Š
>> proxy.do_work3(data);
>> }
>> do_work3(..)
>> {
>> Š
>> contribute(finish_work, CkReduction::sum_double);
>> }
>> finish_work(..)
>> {
>> ...
>> }
>>
>> and this makes things a bit more difficult.
>>
>> Also, does AMPI has C++ interface, particularly for PUP? So that I can do
>> same as in charm p|data, instead of pup_double(..) C routine?
>>
>> Thanks,
>> Evghenii
>>
>> On Nov 8, 2011, at 11:11 AM, Gengbin Zheng wrote:
>>
>>> Hi,
>>>
>>> AMPI is an implementation of MPI standard 1.1 on top of Charm++. The
>>> benefits you mentioned below from charm++ are retained in AMPI. Please
>>> refer to AMPI manual for the MPI extensions for doing load balancing
>>> and checkpointing.
>>>
>>> It sometimes take some efforts to convert an MPI program to AMPI due
>>> to the multi-threading execution and global variable sharing. However,
>>> AMPI provides a set of tools to automate such process (please refer to
>>> recent AMPI papers for the information about the tools).
>>>
>>> Having said that, since AMPI is a library implemented on top of
>>> charm++ (which means another layer, and associated overhead), it is
>>> mainly for legacy MPI application to take advantage of charm++
>>> benefits.
>>>
>>> Gengbin
>>>
>>> On Tue, Nov 8, 2011 at 10:50 AM, Evghenii Gaburov
>>> <e-gaburov AT northwestern.edu>
>>> wrote:
>>>> Hi All,
>>>>
>>>> I have been wondering, what is the advantage of CHARM vs AMPI, can I
>>>> achieve same level of functionality with AMPI as with CHARM?
>>>>
>>>> I already use Charm for my projects, but I was wondering whether
>>>> charm's functionality such as automatic load-ballancing, migration,
>>>> checkpoints is also available in AMPI, and whether it is as easy to add
>>>> it to standard MPI program that will use AMPI backend?
>>>>
>>>> Thanks!
>>>>
>>>> Cheers,
>>>> Evghenii
>>>>
>>>> --
>>>> Evghenii Gaburov,
>>>> e-gaburov AT northwestern.edu
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> charm mailing list
>>>> charm AT cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/charm
>>>> _______________________________________________
>>>> ppl mailing list
>>>> ppl AT cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/ppl
>>>>
>>
>> --
>> Evghenii Gaburov,
>> e-gaburov AT northwestern.edu
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> charm mailing list
>> charm AT cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/charm
>>
>> _______________________________________________
>> ppl mailing list
>> ppl AT cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/ppl
>

--
Evghenii Gaburov,
e-gaburov AT northwestern.edu











Archive powered by MHonArc 2.6.16.

Top of Page