Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Fw: PTP for C/C++/MPI; schedule another call


On May 20, 2005, at 11:57 AM, Beth Tibbitts wrote:

Possible areas of contribution include:
1. MPI code review helpers: MPI keyword lookups, including content
assist/code templates, view(s) of MPI calls found, with markers placed at MPI calls in the code, method name/argument completion. Easy lookup of MPI
symbol/keyword/constants.

I think this is a great idea. I would also suggest looking at similar functionality for OpenMP directives. I poke our MPI folk to see if they have additional
ideas.

2. MPI code construction helpers:  Wizards/template for common MPI
constructs/paradigms, e.g. scatter/gather, broadcast/reduce, etc.
3. MPI "Glossary" - of API information and descriptions... Some function similar to Javadoc in JDT perhaps? Or perhaps a simpler implementation.

Greg and I also talked about another potential mechanism for creating MPI constructs. I'm a big fan of Co-Array Fortran so it would be really cool if
we could create MPI sends and recvs from coarrays.  For example,

A(1:100) = A(1:100)[3]

would load from image (MPI rank) 3 into local array A (elements 1 to 100). The tools could look at this and generate the correct MPI calls. I originally thought that the regular Fortran parser could be modified to recognize this
but maybe it would be better to create a separate tool to handle
compiler directives.  For example,

!$CAF-begin
!$CAF A(1:100) = A(1:100)[3]
!$CAF-end

could be transformed to

!$MPI-begin
if (rank .eq. 3) then
  call mpi_send(A,..)
else
  call mpi_recv(A,...)
end if
!$MPI-end

I'll talk to the local MPI team here to see if they see any problems with
this idea.  For example, CAF is a one-sided mechanism rather than the
two-sided mechanism of MPI 1.  I'm hoping that the begin/end directives
can be used in refactoring to and from MPI and CAF code.

It may be that some of the above can be implemented with existing code
templates and content assist,
specifiable in Preference Pages, etc. We need to determine what the CDT
gives us so far.
We are  working for now on the most recent CDT build, on 3.1M6.

We try to stay sync'd with the most recent CDT so I guess that will mean M7
soon?


Any feedback on the above areas of contribution? I currently have an FDT
on Windows (will need to modify source -- per Greg's suggestion --  for
different compiler, possibly the free G95).

I would also consider the GNU Fortran compiler gfortran.  I'll look into
the Lahey and Intel compilers under Windows later this week when I get
back to my office. So far I haven't tried FDT on Windows but earlier this month
I started installing software so I could give it a whirl.

Regards,
Craig



Back to the top