Security, parallelism
Laurent Martelli
martelli@iie.cnam.fr
03 Jan 1999 13:38:43 +0100
>>>>> "Tril" == Tril <dem@tunes.org> writes:
Tril> On 3 Jan 1999, Laurent Martelli wrote:
>> C is a poor language because it has the implicit order built
>> in. However, Lisp does not have this problem. You just have to
>> add a function unordered-execute which takes a list of
>> instructions to be executed without any special order. I have
>> the intuition that you have unordered-execute and the usual
>> order-execute, it is equivalent to having a graph.
Tril> How does the unordered-execute work? (for myself, and the
Tril> other non-lisp experts out there)
Well, I do not consider myself a list expert, but here's my idea on
the question :
If you have threading functions, you could use them implement the
unordered-execute. Let's write it down (in pseudo code, because I
don't remember/known Lisp functions enough to write it in pure
correct Lisp) :
proc unordered-execute(instructions)
{
foreach instruction in instructions do
{
if fork = 0 then
execute(instruction)
}
}
This only one possible implementation, which is only suitable if you
have a multi-processor machine. And even on such a machine, it would
not be efficient to spawn threads or processes every time there is an
unordered-execute. Considering the cost of spawning a thread/process
and the cost of executing instructions, the system could choose wether
it is a good choice to parallelize or not.
>> I believe that with good heuristics, much of the work of
>> implementing a pre-post could be done automatically. After all,
>> we always repeat the same design patterns all the time. I had
>> found on the web the thesis of somebody who tried to compute
>> implementations from pairs of input and output. It don't think
>> it is usable, but working on pres and posts should give some
>> results.
Tril> Heh... this is what neural networks are :) They only
Tril> approximate the correct results statistically, but the field
Tril> is quite broad in that people have discovered many different
Tril> ways to rig neural nets for different situations.
I don't know neural networks very much, but I have used algorithms
such as simulated annealing and Taboo search. They are operational
research algorithms, which can be used to solve combinatory
problems. They do not give you the exact optimum, but if you just want
a good enough local optimum without spending life times, they can give
you good results.
Laurent.