On Mon, 2006-08-28 at 12:52 -0400, Peter Tanski wrote: I'm sending this part to language list, and also CC to Markus Elfring who I know is interested in such things.
> > All languages with dlopen() can do this already, although > > this method of gaining a partial evaluator is very crude. > > [But it is what Felix will use] > > dlopen() can be tricky, can't it? Oh, it's a horrible technique. I know Erick is an LLVM fan .. this might be better. Though .. I'm seriously thinking of two other alternatives: (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. > >> parallelise Fortran code (using OpenMP) > > > > ah .. looking at OpenMP for Felix implementation .. > > Careful with OpenMP: it is not supported everywhere yet, since it > requires significant support from the compiler and linker (unless you > build a separate parser). noted, but that's not what I meant. Felix is a compiler.. I meant supporting it *in Felix*. OpenMP specifies various constructions for C++. My thought is to provide matching Felix constructions with similar semantics. > Apple-gcc-4.0.1 does not support OpenMP > although IBM's XLC compiler for the ppc did; gcc-4.2.0 does, which is > the basis for my version of gfortran (and its OpenMP support), but > that doesn't mean OpenMP will be available on other systems. In any > case, of all the messaging protocols OpenMP is the easiest to use well yes .. since it isn't a messaging protocol, that part is easy :) It provides hints about how to distribute work between processors. 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. > since it doesn't require you to have a messaging-system daemon > running, as PVM and MPI do. 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. Whereas PVM and MPI are for high level network wide job sharing between processes by message passing. No reason you can't do both: they're two different levels of granularity. > Berkeley UPC doesn't require a messaging- > system daemon, like OpenMP, but you would have to work with it like > you currently do with pthreads (i.e., no pragmas). -- John Skaller <skaller at users dot sf dot net> Felix, successor to C++: http://felix.sf.net ------------------------------------------------------------------------- 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
