diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2011-01-04 21:31:17 +0100 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2011-01-04 21:31:17 +0100 |
commit | a288b73c3f0fff7df02bf3b73d1973258e04f5d4 (patch) | |
tree | 34af29f097f34d97dcabe9d5d70f2e236c48f03d /comparison.html | |
parent | 3fe8732f32e3675c62a46fcb70fb95ef936376a5 (diff) | |
download | lanes-a288b73c3f0fff7df02bf3b73d1973258e04f5d4.tar.gz lanes-a288b73c3f0fff7df02bf3b73d1973258e04f5d4.tar.bz2 lanes-a288b73c3f0fff7df02bf3b73d1973258e04f5d4.zip |
Take all code from Asko Kauppi's SVN server, and push it here so that the github repository becomes the official Lanes source codebase.
Note that Asko's SVN server holds version 2.0.9, whereas this is version 2.0.10, but I don't see any real need to update SVN if it is to become deprecated.
Next steps:
- upgrade the rockspec to the latest version
- make the html help available online somewhere
Signed-off-by: Benoit Germain <bnt.germain@gmail.com>
Diffstat (limited to 'comparison.html')
-rw-r--r-- | comparison.html | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/comparison.html b/comparison.html index 84ef9ca..bebc68b 100644 --- a/comparison.html +++ b/comparison.html | |||
@@ -49,6 +49,7 @@ Pros: | |||
49 | 49 | ||
50 | Cons: | 50 | Cons: |
51 | - requires OS threads | 51 | - requires OS threads |
52 | - currently 1:1 mapping to OS threads (limits scalability and maybe performance) | ||
52 | - not utilizing network parallelism (all threads on one CPU) | 53 | - not utilizing network parallelism (all threads on one CPU) |
53 | 54 | ||
54 | Sample: | 55 | Sample: |
@@ -70,6 +71,31 @@ Sample: | |||
70 | << | 71 | << |
71 | 72 | ||
72 | 73 | ||
74 | =========== | ||
75 | luaproc (by Skyrme, Rodriguez and Ierusalimschy) | ||
76 | =========== | ||
77 | |||
78 | <A HREF="http://www.inf.puc-rio.br/~roberto/docs/ry08-05.pdf">http://www.inf.puc-rio.br/~roberto/docs/ry08-05.pdf</A> | ||
79 | |||
80 | The PDF seems to be an authorative voyage into how Lua could handle multithreading, | ||
81 | in a multicore "separate universes" manner (not like what coroutines already do). | ||
82 | |||
83 | Pros: | ||
84 | - Tackles both multicore and network parallelism | ||
85 | - M:N relationship to kernel threads (one kernel thread runs multiple luaprocs) | ||
86 | - Simple (so they say) | ||
87 | - Lua author (Roberto) included | ||
88 | - Can be used also without _any_ OS threading support (works like Rings, then) | ||
89 | |||
90 | Cons: | ||
91 | - Data passing for "strings, number, or booleans" only | ||
92 | "More complex types must be encoded in some form" | ||
93 | (serializing data is slower than the stack-to-stack copies used by i.e. Lanes) | ||
94 | (yet, serializing allows for network parallelism) | ||
95 | - Message passing is synchronous (only). The sender will wait until the | ||
96 | receiver has taken the message. | ||
97 | |||
98 | |||
73 | ================== | 99 | ================== |
74 | Lua coroutines (by Lua authors) | 100 | Lua coroutines (by Lua authors) |
75 | ================== | 101 | ================== |
@@ -157,7 +183,7 @@ but it won't use more than one CPU core. Other differences include: | |||
157 | (Lanes opens the needed ones) | 183 | (Lanes opens the needed ones) |
158 | 184 | ||
159 | - marshalls numbers, strings, booleans, userdata | 185 | - marshalls numbers, strings, booleans, userdata |
160 | (Lanes marshalls also non-cyclic tables) | 186 | (Lanes also marshalls tables, functions, upvalues, ..) |
161 | 187 | ||
162 | - "remotedostring" allows executing code in the master state | 188 | - "remotedostring" allows executing code in the master state |
163 | (Lanes does _not_ allow subthreads to trouble/modify master automatically, | 189 | (Lanes does _not_ allow subthreads to trouble/modify master automatically, |