We are very pleased to announce the first, alpha, release of the ParaSail prototype Compiler and Virtual Machine. This release includes executables for the Mac, Linux, and Windows. Please visit the ParaSail Google Group to download this release:
We are having some technical difficulties posting the release on the Google Group. Please stand by...ReplyDelete
We found a place to post the entire release. It is available at:ReplyDelete
We have made a minor update to this release, now alpha 0.1, rev 1.3, available at:ReplyDelete
Here is a shortened link for alpha 0.1, rev 1.3:ReplyDelete
Below is a simple mod to hello world and output. The output raises questions.ReplyDelete
1- I ran in a windows quad core.
It appears to only use 2 threads, I would have to seen at least 4.
2- the task scheduling order seems wierd
it seems to be working off both sides of the task queue with the 1-12 and one, is that expected
func Hello_World () is
for I in 1 .. 12 loop
Println("Hello world!"| I );
end func Hello_World;
The default "loop" is unordered. If you wanted it to iterate through the loop in forward sequential order, you need to say "forward loop", or "reverse loop" for reverse sequential order. E.g.:ReplyDelete
for I in 1..12 forward loop
Println("Hello World!" | I);
If you wanted to do them all in parallel, then:
for I in 1..12 concurrent loop
Println("Hello world!" | I);
The default loop is performed in a semi-random order which the compiler is then allowed to
freely parallelize in the absence of data dependencies. This is part of the approach forcing you to work a bit harder if you really want to do things sequentially.
Note that "Println" is a bit of a special case in that it actually has side effects but the compiler treats it as being side-effect free, so you can dump one in anywhere without affecting legality. Once we have a "production" I/O package, there will be I/O routines that take files, and to use those you would have to worry about side-effects, etc. Println is intended more for logging and debugging, rather than for production use.
As far as core usage, the current run-time support library is simulating multiple cores. The next release will use a true multi-threaded run-time, so you will see more cores in use.
If you are interested in following along with a new user of ParaSail, visit the blog:ReplyDelete
Andy already has some more detailed instructions on how to download, install, and run ParaSail, and presumably will be following up with additional insights as he continues his evaluation of ParaSail.
"... As far as core usage, the current run-time support library is simulating multiple cores. The next release will use a true multi-threaded run-time, so you will see more cores in use."
Note that the latest release (alpha 0.2, rev 1.5) now has a multi-thread run-time: