diff options
Diffstat (limited to 'docs/comparison.html')
-rw-r--r-- | docs/comparison.html | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/docs/comparison.html b/docs/comparison.html index 84ef9ca..bebc68b 100644 --- a/docs/comparison.html +++ b/docs/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, |