tag:blogger.com,1999:blog-8383004232931899216.post7049705541716952895..comments2023-11-01T11:47:57.046-04:00Comments on Designing ParaSail, a new programming language: Parallel Quicksort in ParaSail and "slicing"Tucker Tafthttp://www.blogger.com/profile/08866496974237052847noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-8383004232931899216.post-59483594962040455112010-12-29T13:38:19.766-05:002010-12-29T13:38:19.766-05:00Well it seemed easy enough to create the Google Gr...Well it seemed easy enough to create the Google Group now rather than later, so if you want to comment further on ParaSail, you may now do so at:<br /><br /> <a href="http://groups.google.com/group/parasail-programming-language" rel="nofollow">http://groups.google.com/group/parasail-programming-language</a>Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-24216240326421142442010-12-29T12:31:55.146-05:002010-12-29T12:31:55.146-05:00Thanks for the suggestion. In the near term comme...Thanks for the suggestion. In the near term comments on this blog can hopefully act somewhat as a forum. Once the first prototype implementation is available for folks to play with, we will make sure there is a forum for feedback and discussion. A Yahoo or Google group might be the best way to do that.Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-83786265817649443812010-12-29T11:05:15.678-05:002010-12-29T11:05:15.678-05:00Yahoo or Google have discussion forums areas (grou...Yahoo or Google have discussion forums areas (groups) ready to setup and use - I would assume that would be much easier - maybe I am just old :) but I find trying to use a blog to understand and exchange technical ideas to be very limiting. I really think a blog is basically a web-based editorial.<br />Maybe combining a blog with a discussion forum would lead to more input and feedback. I have been hoping for improved programming languages for embedded systems since Ada starting losing favor in the late 1990's - currently stuck using C and C++ (not my choice). Of course we use Matlab, Perl, Ruby and Python for support tasks so new languages have made in-roads there.Marcohttps://www.blogger.com/profile/12951600710101631626noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-52453926476638927802010-12-28T11:43:33.745-05:002010-12-28T11:43:33.745-05:00It is certainly a goal that ParaSail become an ope...It is certainly a goal that ParaSail become an open standard. There is no desire to have the language be proprietary in any way.<br /><br />This blog is the only discussion forum so far. The URLs "parasail-pl.org", "parasail-pl.com", and "parasail-pl.net" have been acquired with the intent of using them for discussion forums, etc. Haven't quite gotten around to that yet!<br /><br />Somewhat amusingly, the junk mailers have already discovered that these new URLs were acquired, and have been sending (physical) junk mail to "Parasail Place". Sounds like a good name for the new web site!Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-66250197373460992212010-12-28T10:59:42.422-05:002010-12-28T10:59:42.422-05:00OT to this post:
1) Is Parasail going to have an ...OT to this post: <br />1) Is Parasail going to have an open standard language spec such as Ada or will it be a pseudo-proprietary language such as C#? If the latter I would say don't bother since most embedded SW developers would never end up using it. Don't confuse "free" with "standard". Multiple vendors/providers are always needed to make a market.<br />2) Is there a discussion forum?Marcohttps://www.blogger.com/profile/12951600710101631626noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-18740863634676860132010-12-18T20:56:35.827-05:002010-12-18T20:56:35.827-05:00btw I'm not proposing you should do more work ...btw I'm not proposing you should do more work ;-) I'm just curious whether having a partitioning construct would help the compiler prove the lack of race conditions.HilbertAstronauthttps://www.blogger.com/profile/11443786031975040593noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-20687866040590245312010-12-18T20:54:01.904-05:002010-12-18T20:54:01.904-05:00Slices are definitely a more natural construct, an...Slices are definitely a more natural construct, and something programmers would want for other purposes. I was just thinking it would be nice to provide syntactic enforcement of disjointness of the two index sets. Of course it may not be hard to do that already, and I can imagine other ways to make disjoint index sets. So I may be inventing a new problem to <br />solve ;-)<br /><br />The parallel iterators in Intel's Threading Building Blocks, like blocked_range, work by partitioning the iteration space recursively.<br /><br />In general, "Partition" is something people do with the nodes of graphs. Typical output is a set of disjoint sets of indices of nodes, satisfying particular criteria and/or maximizing some objective function. That's sufficiently complicated to be implemented in libraries, of course, but it's the most general kind of partitioning that makes sense to me.HilbertAstronauthttps://www.blogger.com/profile/11443786031975040593noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-38260559143106210482010-12-18T14:37:58.775-05:002010-12-18T14:37:58.775-05:00I agree that some more general "partitioning&...I agree that some more general "partitioning" scheme would be valuable. Do you have something specific in mind, or some examples of languages or frameworks that provide this? It would be interesting to see whether generalized partitioning might integrate nicely into the ParaSail model.<br /><br />Slices are nice because they are familiar to many programmers, so it seems worthwhile to include something like this generalized slicing capability in any case.Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-30726464848313400712010-12-18T04:54:39.366-05:002010-12-18T04:54:39.366-05:00To me, partitioning is a more natural operation th...To me, partitioning is a more natural operation than slicing, for recursive parallelism. Maybe that's just me, though ;-) <br /><br />A "partition" method of a container would take an index set (specified as either a contiguous range or as a more general set of indices), and return two (guaranteed nonoverlapping) slices of the container: the first corresponding to the index set, and the second to the negation of that index set. Laziness covers the case where the latter is infinite. <br /><br />Would "partition" make it easier to prove that parallel operations aren't writing to overlapping slices? You could still partition twice and make overlapping slices, but the typical use case is to partition once and recurse. Partition promises nonoverlapping, so the compiler wouldn't have to do work in that case to prove no race conditions. <br /><br />Of course, slices are useful in their own right, so it may not matter.HilbertAstronauthttps://www.blogger.com/profile/11443786031975040593noreply@blogger.comtag:blogger.com,1999:blog-8383004232931899216.post-78395880664971334212010-12-17T17:48:35.319-05:002010-12-17T17:48:35.319-05:00Just fixed a bug in the partitioning, in case you ...Just fixed a bug in the partitioning, in case you were puzzled. Made the usual mistake of posting before actually running the code.Tucker Tafthttps://www.blogger.com/profile/08866496974237052847noreply@blogger.com