Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.lightlink.com!news.iecc.com!nerds-end From: vincent_belliard Newsgroups: comp.compilers Subject: Entity language for parallel programming Date: Thu, 22 Sep 2011 11:30:24 -0700 (PDT) Organization: Compilers Central Lines: 40 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <11-09-027@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: gal.iecc.com 1316744703 61063 64.57.183.58 (23 Sep 2011 02:25:03 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 23 Sep 2011 02:25:03 +0000 (UTC) Keywords: parallel, available Posted-Date: 22 Sep 2011 22:25:02 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: x330-a1.tempe.blueboxinc.net comp.compilers:277 Hello, Making parallel programs has always been tedious. In Entity (http:// code.google.com/p/entity-language), it can nearly be transparent. The concept of entities is made for that. An entity is a small unit of processing. It has a separate memory. Communication between entities is made sending messages. This is the only way to communicate. You send a message to an entity without expecting any result. If the callee entity wants to send a result, it sends a new message to the first entity. This mechanism is built inside the compiler so, sending a message is like calling a function. If needed, an entity can be moved from one process to an other (and maybe on a separate server). This functionality is essential for one idea I had: When you use a pad, you often needs a docking station to add a keyboard and a better screen. I would like to make a docking station with a CPU and a GPU. In this case, when a pad is connected to the docking station, the pad take the control of the docking station and can use all the power of the docking station's CPU. Imagine a text processing program. It could run three entities. One for the display, one for text manipulation and one for controlling the others entities and managing the inputs (keyboard and mouse). Only the controlling entity needs to run on the pad. The others could run on the docking station. If the user wants to leave, all the entities are moved to the pad, the display is now on the pad, it still work even if the text operations are slower. Then the user go from the office to his home and he can plug the pad to his own docking station and the entities are moved to the new docking station. Such an application can only be written if the language help the programmer. That's why Entity has been made. A small introduction on entities can be found here: http://code.google.com/p/entity-language/wiki/entities Vincent Belliard