aboutsummaryrefslogtreecommitdiff
path: root/docs/comparison.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/comparison.html')
-rw-r--r--docs/comparison.html28
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
50Cons: 50Cons:
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
54Sample: 55Sample:
@@ -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
80The PDF seems to be an authorative voyage into how Lua could handle multithreading,
81in a multicore "separate universes" manner (not like what coroutines already do).
82
83Pros:
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
90Cons:
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,