Is there a particular reason that the new features in sire do not just get incorporated in XC?
Sorry, looks like you have a lot of fun developing this, but I'm kind of opposed to the proliferation of programming languages.
Did manage to build sire (after upgrading bison and flex) and I'll see if I can run your programs on my XMP-64. Looks like the start of a real multi-processor OS.
The sire language and dynamic process creation
-
- Member++
- Posts: 26
- Joined: Sat Dec 12, 2009 6:45 am
-
- Experienced Member
- Posts: 99
- Joined: Mon Dec 14, 2009 1:01 pm
Sire is purely a platform on which to demonstrate the process creation mechanism; it incorporates only a small set of features such as channel communication and threading (borrowed from CSP/occam/XC etc.) to do this. It's not intended to be a *new* language at all.Is there a particular reason that the new features in sire do not just get incorporated in XC?
Sorry, looks like you have a lot of fun developing this, but I'm kind of opposed to the proliferation of programming languages.
It might have been possible to incorporate process creation into the XC language/implementation but there are several reasons why this wasn't the best choice. Firstly, it would have probably been much more involved than integration with a simple bespoke compiler (plus, building the compiler was a very useful learning experience for me). Secondly, it is important when making performance measurements that the implementation is both defined and predictable in order to produce accurate results. As the XC runtime is undocumented this is not so.
Let me know how you get on :)Did manage to build sire (after upgrading bison and flex) and I'll see if I can run your programs on my XMP-64.
-
- Member++
- Posts: 26
- Joined: Sat Dec 12, 2009 6:45 am
Thanks for the information, just:
"As the XC runtime is undocumented this is not so."
I don't understand this statement.
I'll definitely start using sire, the XC monolith approach is just too restrictive for what I want to do. Basically I was stuck with predefined tasks on the cores and passing data to be processed around. Dynamically creating processes is much more elegant but unfortunately also a bit more prone to inefficiencies and deadlocks.
"As the XC runtime is undocumented this is not so."
I don't understand this statement.
I'll definitely start using sire, the XC monolith approach is just too restrictive for what I want to do. Basically I was stuck with predefined tasks on the cores and passing data to be processed around. Dynamically creating processes is much more elegant but unfortunately also a bit more prone to inefficiencies and deadlocks.
-
- Experienced Member
- Posts: 99
- Joined: Mon Dec 14, 2009 1:01 pm
I just meant that without knowing exactly what's going on under the bonnet with XC, any performance measurements made could be inaccurate.Thanks for the information, just:
"As the XC runtime is undocumented this is not so."
I don't understand this statement.
Great, although like I mentioned at the beginning of this thread, its purely an experimental implementation so I can't make any guarantees about how it will hold up!I'll definitely start using sire, the XC monolith approach is just too restrictive for what I want to do. Basically I was stuck with predefined tasks on the cores and passing data to be processed around.
I would be really interested to know what kind of programs you are trying to write where this is a real benefit to you. Could you elaborate at all?Dynamically creating processes is much more elegant but unfortunately also a bit more prone to inefficiencies and deadlocks.