r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Tech News] Interesting technology

Pekr
17-May-2006
[874]
I am not sure it is true anymore, but we noticed it developing our 
ccd camera few years ago ... OS simply waits with ACK defined period 
of time or simply to receive second packet, then it confirm both 
.... Ethereal will give you an answer :-)
Volker
17-May-2006
[875]
Pekr, good hint. But i guess to calls to send a byte are two packets 
too. And then there was some flag too IIRC. Somebody remember?
Pekr
17-May-2006
[876x3]
yes, isn't it called Nagle algorithm? It can be set - nodelay ...
in set-modes I mean ....
but is not recommended IIRC :-)
JaimeVargas
17-May-2006
[879]
Gabriele, tasking without any explicit control  is risky. How do 
you handle two task both writting to the same file, who gets access 
to the resource, how you enforce determinism?
Pekr
17-May-2006
[880x3]
Apple closes down OS-X - http://www.infoworld.com/article/06/05/17/78300_21OPcurve_1.html
have not read it yet, so sorry if it is not what topic states ....
Tasking discussion could move to Rebol3 maybe? (because there is 
general interest in the concept)
Volker
17-May-2006
[883x2]
Closes the source of os-x
darvin-kernel.
Gabriele
17-May-2006
[885]
Jaime, writing to files is something for the os to handle, not the 
language. what happens if you write from rebol on a file you're writing 
from another app?
Volker
17-May-2006
[886]
Maybe Jaime means: If you do everything that way, including the os? 
But, there would be no  such thing as a file, there would be a file-server, 
eg a third task. Which gets request and can sort them out.
Henrik
17-May-2006
[887]
pekr, because of piracy??
JaimeVargas
17-May-2006
[888]
Gabriele, I don't think is an OS issue only. Once you introduce tasking 
would could write something like:

do [
    task [write %file "Hello"]
    task [write %file "World"]
]


The question is what is the result of such computation. Without any 
further mechanism it can produce as minimum two different results. 
"World Hello"  "Hello World", discarding posible contention errors. 
So how does R3 will manage such issues.
Pekr
17-May-2006
[889x2]
Creative sues Apple over patents - http://www.marketwatch.com/News/Story/Story.aspx?dist=newsfinder&siteid=google&guid=%7BCB4F9BED-E370-4CCA-92E6-AC8EB26451F4%7D&keyword=
what a crap - I stop buying Creative stuff. If some company can't 
innovate, they should shut-up and leave the scene. How can anyone 
with good brain condition patent such a thing as sorting based upon 
ID3 tag content?
Volker
17-May-2006
[891x3]
One can even sue about using a trashcan -icon for a trashcan IIRC..
do[

  task 'task-server [ set[file content] copy msg  write file content 
  ]
  task [ send 'task-server %file "Hello" ]
  task[ send 'task-server %file "World" ]
]
'task-server -> 'file-server
JaimeVargas
17-May-2006
[894x2]
Volker, you are proposing data flow through msg queues?
But the msg queue above still has non-determinism involved. Because 
you can not control how TASK handles scheduling.
Anton
18-May-2006
[896]
Why get so excited ? Did you read the last line in that article ?
Volker
18-May-2006
[897]
But what you wrote is similar too
either 1 = random 2[ write%file "Hello"][write %file "world"]

What a task does depends upon what a task gets. I imagine a task 
in erlang as a little engine, which gets things of various kinds, 
wires them together when it has one of each kind and passes them 
further. And that "further" can not be deterministic with real hardware. 
Think of an out-of-order-cpu, a little delay in a memory-fetch and 
the command is processed by another pipeline. And that is without 
routing around crashed things. I prefer to have a full featured language 
to calculate the new route, not something restricted.
Gabriele
18-May-2006
[898x5]
Jaime, I just don't think rebol should manage files. but, you can 
do coordination, just using message ports. and you can write a dialect 
over that.
the real issue is: people always use multithreading, even when there 
is no reason to.
if a thread has to wait for another, then you're just wasting time 
and creating problems with threads.
threads are efficient when they are independent (tasks). otherwise 
you should not use them.
if you want order, don't make two separate tasks. if you make two 
separate tasks is because you don't want order.
Pekr
18-May-2006
[903]
Gabriele - so we will ge threads, which will be simplified for rebol 
users/coders, and some kind of messsage queues?
Volker
18-May-2006
[904]
But IMO Jaime thought he needs sometimes exclusive access, locking. 
After my example he got it mostly, "Volker, you are proposing data 
flow through msg queues?".
Gabriele
18-May-2006
[905]
locking is painful, a server like you propose is much better.
Volker
18-May-2006
[906]
Now we discuss how to put enough determinism in that system.
Gabriele
18-May-2006
[907x2]
i need to read that paper jaime posted; anyway if it's just linda 
style, it's trivial to do with a server handling the tuple space.
i think that if you want determinism you should probably avoid parallel 
processing. parallel processing is good when you don't care about 
determinism - if you care then where is the advantage?
Volker
18-May-2006
[909]
Prepending i understood it and ask for theothers: What isa tuple-space? 
:)
Gabriele
18-May-2006
[910x4]
volker: basically a block of blocks :)
you cannot address the block; you can only get the blocks matching 
a pattern, and publish other blocks.
having a defined set of operations, you end up with a system that 
does not have the usual problems of parallel processing.
i don't think there's any need to have this natively, the native 
code just needs to ensure that you cannot screw things up by mistake 
:)
Volker
18-May-2006
[914x2]
Maybe determinism means here: Some things must happen in order, for 
example writing to a log? So that different runs produce the same 
result?
Which this server-thing should do.
Gabriele
18-May-2006
[916]
if you want to log events a and b, and they can happen with watever 
order, you want to log them in whatever order. if they can only happen 
in a given order, there is no parallelism.
Volker
18-May-2006
[917x2]
Just thinking loud about tuple-space: Could xpath and threads go 
hand in hand?
But a parralel processed image looks the same all the time, or the 
processing of a big matrix. Still deterministic. Whatever happens 
inside the box.
Pekr
18-May-2006
[919]
Sun blesses Java phone - http://www.deviceforge.com/news/NS6109398413.html
.... java penetration is the reason why I asked if rebol-4-Java would 
make sense :-)
JaimeVargas
18-May-2006
[920x3]
Anton, Yes I read the last line and I agree with it. The question 
is what should Rebol do to takle the concept of concurrency and do 
it properly, like Erlang, Termite, or Mozart/Oz.
Volker, I was ilustrating that just using the function TASK is not 
enough. You need a way to prune non-determinism. The example I posted 
ilustrate the problem. Your example has the same problem than mine, 
because TASK it doesn't introduce an order of execution. The fact 
that your example is coded sequentially doesn't mean that the computation 
will be carried in that order and produce the same result always. 
Your example only introduces notatation to pass messages between 
tasks.
Gabriele, using threading only computation  with no overlaps is limiting 
concurrency to one problem space. If that is the case then why add 
TASKs to Rebol, when we have already processes.  The only advantage 
will be memory use, and context switching time, but not extra gains.
Volker
18-May-2006
[923]
Your example looked like locking to me, i saw two threads accessing 
a shared resource. Semms i missed the point.