Automatically convert to distributive?

4 views
Skip to first unread message

YKY (Yan King Yin, 甄景贤)

unread,
Jan 25, 2012, 4:01:24 AM1/25/12
to general-in...@googlegroups.com
I have figured out the basic algorithm for clustering the KB, and am now working out the distributive version of it.  It's not that difficult, but I'm wondering if this can be done automatically by existing software?  IE, I write the non-distributive version of the program, and a software platform will automatically turn it into an efficient distributive version?  Does that exist?

The altenative is to write it in Erlang (or any language with similar message-passing capabilities).  So I'll figure out the distributive clustering method manually.  As I said before, it's not too hard.  I just suspect that this task may be redundant...

KY

Russell Wallace

unread,
Jan 25, 2012, 4:22:58 PM1/25/12
to general-in...@googlegroups.com
Alas, automatically distributing a serial program across multiple
machines is still an unsolved problem. For doing it by hand, Erlang is
said to be a good way to express message passing computation, though
bear in mind it's not designed for numbercrunching, so if your motive
for distributing the computation is speed, it's possible a different
language might be more suitable.

2012/1/25 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:

YKY (Yan King Yin, 甄景贤)

unread,
Jan 26, 2012, 10:24:36 PM1/26/12
to general-in...@googlegroups.com
On Thu, Jan 26, 2012 at 5:22 AM, Russell Wallace <russell...@gmail.com> wrote:
Alas, automatically distributing a serial program across multiple
machines is still an unsolved problem. For doing it by hand, Erlang is
said to be a good way to express message passing computation, though
bear in mind it's not designed for numbercrunching, so if your motive
for distributing the computation is speed, it's possible a different
language might be more suitable.


Yeah that's what I think, Genifer could use a distributed database for the KB, but then the querying / fetching operations have to be custom-made, and existing DB systems may not allow doing that, or it'd be a hassle to implement.

Guess I'd go with the message-passing approach...
KY

Matt Mahoney

unread,
Jan 25, 2012, 12:55:13 PM1/25/12
to general-in...@googlegroups.com
2012/1/25 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:
> I have figured out the basic algorithm for clustering the KB, and am now
> working out the distributive version of it.  It's not that difficult, but
> I'm wondering if this can be done automatically by existing software?  IE, I
> write the non-distributive version of the program, and a software platform
> will automatically turn it into an efficient distributive version?  Does
> that exist?

I doubt it. Solving a specific instance is usually easier than solving
the general problem.

> The altenative is to write it in Erlang (or any language with similar
> message-passing capabilities).  So I'll figure out the distributive
> clustering method manually.  As I said before, it's not too hard.  I just
> suspect that this task may be redundant...

What about http://mattmahoney.net/agi2.html ?


-- Matt Mahoney, mattma...@gmail.com

Matt Mahoney

unread,
Jan 25, 2012, 7:55:13 PM1/25/12
to general-in...@googlegroups.com
A distributed design ought to be language independent. Start by
deciding how the data and processing will be distributed and what
information the processors need to communicate. Then design a
communication protocol and figure out the hardware requirements. How
many processors? How much storage? How much network bandwidth?

All this comes before picking a programming language. Since all
languages are Turing complete, the choice comes down to efficient
implementation, development support, and what your programmers are
most comfortable with.

What are your requirements?

--
-- Matt Mahoney, mattma...@gmail.com

YKY (Yan King Yin, 甄景贤)

unread,
Feb 7, 2012, 1:12:28 AM2/7/12
to general-in...@googlegroups.com
On Thu, Jan 26, 2012 at 1:55 AM, Matt Mahoney <mattma...@gmail.com> wrote:
The problem is that CMR still needs to be developed, drawing from our extremely limited resources.

If CMR already exists as a development platform, it would be advantageous to use it, even if it's not a 100% fit with my logic-based design.

Also, it seems to me that the most essential functionality is already offered by message-passing libraries in languages such as Erlang.  CMR adds some extra features to it, such as security, but the benefits are marginal and I'm not sure how significant they are...

KY

Matt Mahoney

unread,
Feb 7, 2012, 8:59:36 AM2/7/12
to general-in...@googlegroups.com
2012/2/7 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:

> On Thu, Jan 26, 2012 at 1:55 AM, Matt Mahoney <mattma...@gmail.com>
> wrote:
>
>> What about http://mattmahoney.net/agi2.html ?
>
>
> The problem is that CMR still needs to be developed, drawing from our
> extremely limited resources.
>
> If CMR already exists as a development platform, it would be advantageous to
> use it, even if it's not a 100% fit with my logic-based design.

Development will be a lot of work. Not so much in implementing the
protocol, but in making a service that is useful and easy to use. We
have to compete with Google, Twitter, and Facebook for people's time.
It is only useful if a lot of people already use it. Remember that the
knowledge base comes from (hopefully) billions of users. We have to
make it worth their time.

> Also, it seems to me that the most essential functionality is already
> offered by message-passing libraries in languages such as Erlang.  CMR adds
> some extra features to it, such as security, but the benefits are marginal
> and I'm not sure how significant they are...

You need message authentication to prevent source spoofing. It is a
public network, so it is vulnerable to spam. The hard part of the
problem is not the authentication algorithms. It's identifying which
messages should be saved and distributed and which should be blocked.
That part requires intelligence.


-- Matt Mahoney, mattma...@gmail.com

YKY (Yan King Yin, 甄景贤)

unread,
Feb 9, 2012, 9:15:16 AM2/9/12
to general-in...@googlegroups.com
On Tue, Feb 7, 2012 at 9:59 PM, Matt Mahoney <mattma...@gmail.com> wrote:

You need message authentication to prevent source spoofing. It is a
public network, so it is vulnerable to spam. The hard part of the
problem is not the authentication algorithms. It's identifying which
messages should be saved and distributed and which should be blocked.
That part requires intelligence.


So far I have assumed the AGI would be given perfectly correct training data.  As to how we get those data, they will definitely come from human users.  Then we have the problem of verifying the knowledge, and again, it has to rely on human feedback, but the AGI should be able to manage that as a noisy learning problem, so we don't need to write additional algorithms.

So, the intelligence part will be provided by the learning algorithm, I have already outlined how it can be done.

KY

Matt Mahoney

unread,
Feb 9, 2012, 10:08:17 AM2/9/12
to general-in...@googlegroups.com
You're right that you can't assume that the training data will be
perfect. Any good learning algorithm should handle noisy data.


2012/2/9 YKY (Yan King Yin, 甄景贤) <generic.in...@gmail.com>:

--
-- Matt Mahoney, mattma...@gmail.com

Reply all
Reply to author
Forward
0 new messages