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
