Re: future of programming languages

From: Alan Balmer (albalmer_at_att.net)
Date: 03/31/04


Date: Wed, 31 Mar 2004 11:37:17 -0700

On Wed, 31 Mar 2004 17:20:31 +0100, Omri Barel <spammer@p2z.com>
wrote:

>Alan Balmer wrote:
>
>> On Tue, 30 Mar 2004 22:19:54 +0100, "Malcolm"
>> <malcolm@55bank.freeserve.co.uk> wrote:
>>
>>
>>>"Ben Pfaff" <blp@cs.stanford.edu> wrote in message
>>>
>>>>I'm curious what you mean by "computers will have no CPUs."
<snip>
>>
>> First, there are indeed computers which process instructions in
>> parallel, even conceptually. They aren't even uncommon now.
>>
>> Second, you didn't answer the question, unless you're trying to say
>> that "multiple CPUs processing in parallel" are not CPUs.
>>
>
>I think he means a system where no processor is central. When you have
>65,000 processors, you can *call* each of them 'central processing
>unit', but none of them is really central.

Ah, should have realized. You are undoubtedly correct. The term "CPU"
has acquired a meaning considerably broader than the original acronym,
but the original may be what the OP meant.
>
>How do you program 65,000 processors, when they don't all do the same
>thing? Do you maintain 65,000 C programs? How do you distribute this
>software among 65,000 processors? What happens if 102 of them are dead
>when you distribute the software, and you replace them only later (while
>the others are alive)? What happens if you can treat processors
>separately as well as together (assign 4 processors a task, and then
>assign each a different task) - do you code all this in C?

All interesting questions, and all have more than one answer :-)
Specialized languages (and compilers) have been developed which do
divide work among processors. After all, massively parallel processors
are now widely and successfully used. In some applications, explicitly
multi-processor code is generated. In others, an operating system is
used which can divide resources based on processes or threads. This
method, of course, is very common now, even on desktop systems.
>
>The same questions apply to a massively distributed project as well.
>Today, massively distributed projects consist of a huge number of
>'clients' all running the same software with different data, reporting
>to one (or several) central servers. What happens if your software is so
>compilcated that each client should run different code (which may be
>changed at run-time as a result of other clients' output)? Do you code
>it in C?
>
>Most langauges do not directly support the notion of multiple
>processors.

Sure, but one language is enough ;-)

> You can start a few threads and hope that the hardware will
>do the right thing,

A combination of the hardware and the system software, actually.

>but controlling 65,000 (different) threads in one C
>program sounds like a nightmare.

Depends on the problem. If you have massive amounts of data that need
to be processed in the same manner, it's quite simple. Such problems
are very common, btw. If different types of problems need to be solved
simultaneously, it's much more complex, and in general will need
considerable help from tools.

>The (future?) hardware may provide
>direct support for synchronisation between processors.
Current hardware provides such support.

> If you program
>each processor individually you might not even be able to take advantage
>of such hardware support.

That's true in the same sense that I would be hard pressed to produce
even a small percentage of my normal workload if I had to write
assembler code to control every aspect of the computer. Instead, I
count on compilers and operating systems with device drivers, SMP
support, etc.

-- 
Al Balmer
Balmer Consulting
removebalmerconsultingthis@att.net


Relevant Pages

  • Re: The possibility of vms opening up?
    ... software was to sell hardware. ... alternatives that run on older computers, apart from games and the ever ... support and that users know would mostly likely be chosen. ... that Sun's latest OpenSPARC T1 is open source, yes thats not a lie, the ...
    (comp.os.vms)
  • Re: Do those big box vendors provide full technical support including OS related for users?
    ... But why the home built computers are more common in Asia than in the West ... they buy more whole systems from big vendors ... Big vendors offer customer support (someone to call when you need help ... what hardware they want. ...
    (microsoft.public.windowsxp.hardware)
  • Re: [opensuse] Opensuse 11.0 Boot iso
    ... implying new hardware in most cases. ... Old machines are largely already running something, and for re-installs, ... It's pointless to support older ... Apple is dropping support for computers that are barely 3 years ...
    (SuSE)
  • Re: New Mac
    ... older hardware. ... Of course not all computers are PCs, in fact most computers in use today ... Actually I would say they are better than apple are in this regard. ... Microsoft always support at least the previous operating system, ...
    (uk.comp.sys.mac)
  • Re: rt20 scheduling latency testcase and failure data
    ... The system was under heavy network load for some of the time, ... # Firmware Drivers ... # ACPI Support ... # ISDN4Linux hardware drivers ...
    (Linux-Kernel)