On Aug 28, 2006, at 2:19 PM, skaller wrote:

> (a) write my own assembler for a high level assembler language
> (b) A VM such as Neko
>
> Neko is cool, the major downside is it uses Boehm GC,
> which is a bit fragile and insists on visible pointers,
> some very fast techniques are going to break that,
> eg page tables/tries can't be used because they chop
> up machine addresses into streams. Its also unlikely
> they'd work with overlays or other techniques using
> mmap to manage memory manually. And shared memory
> would be an issue (process wide).
>
> Also the 'world stop' is a killer for some kinds
> of applications.

You certainly wouldn't want to use such a GC'd programming for video  
games, machine control or real-time sampling.  That limits you to  
pretty much desktop applications and the like.  As for assembler,  
that sounds like a huge project.  It's too bad the C-- people are  
lagging at the pace of academic research.

> OpenMP ... I meant supporting it *in Felix*.
>
> OpenMP specifies various constructions for C++.
>
> My thought is to provide matching Felix constructions
> with similar semantics.

You intend to extend felix to the assembly level?  Isn't that what it  
would take?

> well yes .. since it isn't a messaging protocol, that part is easy :)
> It provides hints about how to distribute work between processors.

So OpenMP really only provides a benefit on a single multiprocessor  
computer and the number of processors supported depends on how it is  
programmed and compiled.  I.e., if you move from a machine with 2  
processors to a machine with 3 or 4 you wouldn't get that much  
benefit, right?   Most of the MPI packages listed below provide  
scalability for the number of processors at run-time.

> I have yet to check, but completely ignoring these hints
> appears to be a valid implementation. In C++ the hints
> are all pragmas, and the parallelised code can be executed
> 'as written' sequentially with the same semantics.

But then it would be no more "parallel" than a single-threaded  
application would be, right?

> I have yet to look at PVM and MPI. My understanding is
> OpenMP is for shared memory multi-processor, that is,
> low level parallelisation by threading with shared memory.

I honestly don't know that much about OpenMP (that's partly why I  
went through the trouble to find a compiler that would do it for  
me).  Here are some links to the other sites:
TOP-C
http://www.ccs.neu.edu/home/gene/topc.html

PVM
http://www.csm.ornl.gov/pvm/pvm_home.html

LAM/MPI (older version of OpenMPI)
http://www.lam-mpi.org/

OpenMPI
http://www.open-mpi.org/

MPI (MPICH2)
http://www-unix.mcs.anl.gov/mpi/mpich2/

BerkeleyUPC (may be a good model to work off of, the best of the bunch)
http://upc.lbl.gov

> Whereas PVM and MPI are for high level network wide job sharing
> between processes by message passing.

You can use both PVM and MPI (latest: MPICH2) on a single  
multiprocessor computer and get roughly the same effect you would  
using OpenMP.  They each use their own runtime system.

> No reason you can't do both: they're two different levels of
> granularity.

You mean both as in one implementation that runs both or as in two  
implementations?  There are problems with using two implementations-- 
as far as I know, only Berkeley UPC has support for a separate  
implementation (MPI)--of course that may be my own ignorance.  The  
disadvantage to these things is that they are fairly heavy weight.

-Pete

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to