\section{Other PPL Tools, Libraries and Applications}

\subsubsection{What is Structured Dagger?}

{\em Structured Dagger} is a structured notation for specifying intra-process
control dependencies in message-driven programs. It combines the efficiency
of message-driven execution with the explicitness of control specification.
Structured Dagger allows easy expression of dependencies among messages
and computations and also among computations within the same object using
{\tt when-blocks}
and various structured constructs. See the Charm++ manual for the details.

\subsubsection{What are the performance problems with AMPI packing and unpacking?}

There is an extra copy involved, because the AMPI message is reusable
immediately after the AMPI call returns. Since Charm++ messages are to
be handed over to the system, there is an extra copy involved (plus creation
of a Charm++ message) while sending.

%<li>
%<b>Why does AMPI now derive from </b><tt>ArrayElement1D</tt><b> rather
%than </b><tt>TempoArray</tt><b>?</b></li>

%<br>Deriving it from <tt>TempoArray</tt> was causing some inefficiencies
%because of the introduction of derived data types. Basically, it was causing
%multiple copies. Also, I felt that some more optimizations, especially
%with collective operations can be done this way, so I have changed AMPI
%to be a standalone Charm++ library, rather than being dependent on Tempo.

\subsubsection{Is {\tt TempoArray::ckTempoSendElem()} the only way for non-AMPI
code to communicate with running AMPI code?}

<br>A static method <tt>sendraw</tt> is added to the AMPI class, that allows
you to send a message to AMPI threads from outside AMPI. So, instead of
using the <tt>TempoArray</tt> method, you can use:
<tt>ampi::sendraw(tag1,tag2,msg,len,arrayid,index);</tt>

\subsubsection{What is Charisma?}

Charisma++ is a prototype language for describing global view of control in a parallel program. It is designed to solve the problem of obscured control flow in the object-based model with Charm++.

\subsubsection{Does Projections use wall time or CPU time?}

Wall time.
