Slashdot Mirror


Scaling To a Million Cores and Beyond

mattaw writes "In my blog post I describe a system designed to test a route to the potential future of computing. What do we do when we have computers with 1 million cores? What about a billion? How about 100 billion? None of our current programming models or computer architecture models apply to machines of this complexity (and with their corresponding component failure rate and other scaling issues). The current model of coherent memory/identical time/everything can route to everywhere; it just can't scale to machines of this size. So the scientists at the University of Manchester (including Steve Furber, one of the ARM founders) and the University of Southampton turned to the brain for a new model. Our brains just don't work like any computers we currently make. Our brains have a lot more than 1 million processing elements (more like the 100 billion), all of which don't have any precise idea of time (vague ordering of events maybe) nor a shared memory; and not everything routes to everything else. But anyone who argues the brain isn't a pretty spiffy processing system ends up looking pretty silly. In effect, modern computing bears as much relation to biological computing as the ordered world of sudoku does to the statistical chaos of quantum mechanics.

206 comments

  1. Reminds me of Hillis by Arancaytar · · Score: 1

    With his Connection Machine.

    Don't remember how many cores that one had...

    1. Re:Reminds me of Hillis by headhot · · Score: 2, Informative

      The CM-1 has 65,536 one bit processors. The CM-5 was in Jurassic Park, and some phone companies.

    2. Re:Reminds me of Hillis by teazen · · Score: 2, Insightful

      Exactly! New is the new old. A million processors? Pah! Old hat. There has been done lots of interesting research into parallel processing in the past. Read the Connection Machine book It's a great read.

      Feynman was also involved with the machine at a certain point. There's a great writeup on him and it for a quick introduction: '.. It was a complicated device; by comparison, the processors themselves were simple. Connecting a separate communication wire between each pair of processors was impractical since a million processors would require $10^{12]$ wires. Instead, we planned to connect the processors in a 20-dimensional hypercube so that each processor would only need to talk to 20 others directly. ..'

      The C-5 looked awesome as well. And I'll just keep quiet about all the cool Lisp stuff they did on it.

    3. Re:Reminds me of Hillis by Z00L00K · · Score: 1

      And I would probably select Erlang as programming language for a massive amount of cores.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    4. Re:Reminds me of Hillis by pieterh · · Score: 4, Interesting

      You don't even need Erland, you can use a lightweight message-passing library like ZeroMQ that lets you build fast concurrent applications in 20 or so languages. It looks like sockets but implements Actors that connect in various patterns (pubsub, request-reply, butterfly), and works with Ruby, Python, C, C++, Java, Ada, C++, CLisp, Go, Haskell, Perl, and even Erlang. You can even mix components in any language.

      You get concurrent apps with no shared state, no shared clock, and components that can come and go at any time, and communicate only by sending each other messages.

      In hardware terms it lets you run one thread per core, at full efficiency, with no wait states. In software terms it lets you build at any scale, even to the scale of the human brain, which is basically a message-passing concurrent architecture.

    5. Re:Reminds me of Hillis by swilver · · Score: 0, Troll

      And what these researchers don't seem to get is that for application flow and implementing business logic, which is what most programmers are concerned with, there's no need for programming for multiple CPU's.

      Everything that really sucks the life out of your CPU/GPU is usually trivial to run in parallel (and the most time critical stuff is doing so already), and it perhaps represent as little as 5% of all code run by these processors. All the other code that most programmers concern themselves with daily does not need a new programming model.

    6. Re:Reminds me of Hillis by FlippyBoy · · Score: 1

      I'm pretty sure that this area of research will produce many *new* applications which will require or at least benefit from this kind of computing. AI, for instance, would have a new platform for other researchers to experiment with.

      I think the current model of computing, while sufficient to produce 95% of the current business logic (as you say), is still very limiting. The amount of data being generated on the internet these days is staggering - so much so that most of it just sits there, never being looked at again after being created. Our current model has no way of dealing with this in any meaningful way. How about realtime augmented reality - just taking in and processing everything in front of your eyes within fractions of a second is thus far a task only for something as complex as our brains. I'm sure, as researchers advance this model, people will find all sorts of creative ways to put it to use.

    7. Re:Reminds me of Hillis by skids · · Score: 1

      What sucks life out of *my* CPU is waiting for cache lines while running gigantic hairballs or spaghetti "business logic" code and it's associated over-OOd overhead.

    8. Re:Reminds me of Hillis by DreddUK · · Score: 1

      Even more so when you implement the message passing with a non-blocking IO paradigm. Something like http://www.jboss.org/netty

      --
      "If A equals success, then the formua is A=X+Y+Z. X is work. Y is play. Z is keep your mouth shut" - A Einstein.
    9. Re:Reminds me of Hillis by pieterh · · Score: 1

      Netty looks real nice but is Java only, which is a shame. ZeroMQ also does non-blocking IO and lock-free communication between IO threads and application threads. It's nowhere as rich as Netty however.

    10. Re:Reminds me of Hillis by Darinbob · · Score: 1

      Why has everyone in the last few years started talking about cores instead of processors?

    11. Re:Reminds me of Hillis by Anonymous Coward · · Score: 0

      Because in the last few years we started having multiple cores in a single processor -- when it was 1:1, it didn't matter which term we used, so we used the physical (processor) rather than the then-pointless abstraction (core).

  2. Better be running OSS by Anonymous Coward · · Score: 0

    This 1-million core machine better be running open source software and not proprietary software. You know who runs proprietary software? Microsoft and Apple. Yeah, they make a lot of money, but they'd make much more money if they gave away their software and sold support licenses.

    1. Re:Better be running OSS by jd · · Score: 3, Interesting

      I don't know about this specific project, but Manchester is strongly Open Source. The Manchester Computer Centre developed one of the first Linux distributions (and - at the time - one of the best). The Advanced Processor Technologies group has open-sourced software for developing asynchronous microelectronics and FPGA design software.

      Manchester University is highly regarded for pioneering work (they were working on parallel systems in 1971, and developed the first stored-program computer in 1948) and they have never been ashamed to share what they know and do. (Disclaimer: I studied at and worked at UMIST, which was bought by Manchester, and my late father was a senior lecturer/reader of Chemistry at Manchester. I also maintain Freshmeat pages for the BALSA projects at APT.)

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:Better be running OSS by capo_dei_capi · · Score: 5, Funny

      This 1-million core machine better be running open source software and not proprietary software.

      Yeah, especially if their software is licensed on a per-core basis.

  3. 1 billion cores by should_be_linear · · Score: 2, Informative

    thats about 30 forks(), and there you go.

    --
    839*929
    1. Re:1 billion cores by Anonymous Coward · · Score: 0

      ...or spaghetti for 29 dining philosophers!

    2. Re:1 billion cores by BhaKi · · Score: 2, Insightful

      Wrong. You need 999999999 forks.

      --
      The largest prime factor of my UID is 263267.
    3. Re:1 billion cores by TheSpoom · · Score: 3, Informative

      I'm pretty sure the poster meant to do something like this:

      fork();
      fork();
      fork(); // etc.

      which would make the number of processes increase exponentially every time the forked processes forked again. Not 1, 2, 3, but 1, 2, 4, 8, 16... and 2^30 gets you above 1 billion.

      --
      It's better to vote for what you want and not get it than to vote for what you don't want and get it.
      - E. Debs
    4. Re:1 billion cores by Anonymous Coward · · Score: 0

      thanks captain O.

    5. Re:1 billion cores by Laxori666 · · Score: 1

      I think GP meant you should built the neuron elements out of forks. Maybe they have a unique potential for computing power?

    6. Re:1 billion cores by VoidCrow · · Score: 1

      Behold, the Fork of Truth!

    7. Re:1 billion cores by Anonymous Coward · · Score: 1, Funny

      Ah, I see you're familiar with the Swedish school of parallel programming. FORK FORK FORK!

    8. Re:1 billion cores by Anonymous Coward · · Score: 0

      That may look like 30 forks when looking at the source code, but the processor does 1073741823 forks.

  4. multi core design by girlintraining · · Score: 4, Insightful

    Simply put, there are some computational problems that work well with parallelization. And there are some that no matter how you try to approach it, you come back to a serial-based model. You could have a billion core machine running at 1Ghz get stomped by a single core machine running at 1.7Ghz for certain computational processes. We have yet to find a way computationally or mathematically to make intrinsically serialized problems into parallel ones. If we did, it would probably open up a whole new field of mathematics.

    --
    #fuckbeta #iamslashdot #dicemustdie
    1. Re:multi core design by jd · · Score: 4, Interesting

      You cannot parallelize a serial task, any more than you can have 60 people dig one posthole in one second. On the other hand, there are MANY tasks that are inherently parallel but which are serialized because either the programmers aren't up to the task, the OS isn't up to the task or the CPU isn't up to the task.

      (I don't know if kernel threads under Linux will be divided between CPUs in an SMP system, they certainly can't migrate across motherboards in any MOSIX-type project. That limits how parallel the bottlenecks in the program can ever become. And it's one of the best OS' out there.)

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:multi core design by anarche · · Score: 1

      that sounds like a mathematics phd in the making to me...

      --
      Wait! Whats a sig?
    3. Re:multi core design by tuomoks · · Score: 1, Offtopic

      Correct, some problems are serial - at least in current world, another topic! But parallelism is not same as threads - you can run any number of tasks, possible since 60's or 70's depends on who you ask. Unfortunately today, the younger generation has to learn the multi-tasking again, all they know (if they know!) is multi-threading, another way to make parallel processing but not the only. There is much, much more in parallel processing - code is not the only issue but one where more "cores" help. Sometimes wonder - non-locking memory management and queue processing are old, old - see some IBM research from 70's, how many has even heard of those? Very useful when several "cores"!

    4. Re:multi core design by EWillieL · · Score: 1

      There are whole classes of tasks that simply can't be done in parallel.

      For example, If you want a baby in three months, you don't impregnate three women and hope for the best. You buy him/her from the Impoverished Nation of the Week.

      --
      Ask your doctor if getting up off your ass is right for you! -- Bill Maher
    5. Re:multi core design by Your.Master · · Score: 2, Interesting

      Actually, you can to some extent serialize a parallel task, with sufficiently many cores.

      For instance, you could just guess at all the intermediate results of halfway through a long sequence of operations, and execute from there, but discard the information if it's wrong. With lots of cores and a good chokepoint, you might be able to gain a 2x speedup a significant percent of the time (for a lower average speedup). 2x, that is, from billions of cores.

      Kind of like branch prediction, or a dynamically generated giant lookup table.

      It just isn't a very efficient speedup, at all, compared to the gains of even modestly parallelizable tasks.

    6. Re:multi core design by Your.Master · · Score: 1

      Ugh, I meant "parallelize a serial task".

    7. Re:multi core design by Anonymous Coward · · Score: 3, Interesting

      If one is willing to use the transistors of a billion core machines to speed up a single problem anyway, some transistors could be better used to accelerate the specific problem in the form of custom circuits. There could be a similar layered structure in the system as the brain uses. The lowest, fastest and task customized levels could be build using hard-wired logic, the layer above it using slowly reconfigurable circuits with very fast switching speeds, the layers above easily reconfigurable circuits with slower switching speeds and the highest level using the normal general purpose logic. A higher level could train and use the services of a lower level just like the brains might do in a case of a phobia, trauma or some psychosomatic condition. New sub fields of computer science and computer engineering of a computer psychologist and a computer psychiatrist might be created out of necessity..

    8. Re:multi core design by gknoy · · Score: 1

      you could just guess at all the intermediate results of halfway through a long sequence of operations, and execute from there, but discard the information if it's wrong.

      How would you know that the calculations were wrong?

    9. Re:multi core design by Paradigma11 · · Score: 1

      you could just guess at all the intermediate results of halfway through a long sequence of operations, and execute from there, but discard the information if it's wrong.

      How would you know that the calculations were wrong?

      You get the arguments for the next computation and can look the result up in a dictionary/ hash table. (space for time trade)

    10. Re:multi core design by jd · · Score: 3, Informative

      You've got to be careful when talking about threads. There are four basic models: SISD, SIMD, MISD and MIMD. Of those, only SISD is serial, but if you've two independent SISD tasks, you can run them in parallel. Most modern supercomputers are built on the premise that SIMD is good enough. Not sure where MISD is used, MIMD fell out of favour when vector processors became too expensive but may be revived on more modest CPUs with modern interconnects like Infiniband.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    11. Re:multi core design by CarpetShark · · Score: 1

      have 60 people dig one posthole in one second

      Where there's a will, there's a way.

    12. Re:multi core design by William+Robinson · · Score: 5, Interesting

      Not sure where MISD is used

      Back in 1987, when I was part of team that was designing parallel processing machine, with 4 neighboring CPUs sharing common memory (apart from their own local memory, kind of systolic array), we were designing machine suitable to simulate aerodynamics or weather forecasting using diffusion equations. We believed that it was working on MISD model, where different algorithms running in different CPUs utilized same data for analysis, using bus arbitration logic.

    13. Re:multi core design by roman_mir · · Score: 1

      You cannot parallelize a serial task, any more than you can have 60 people dig one posthole in one second.

      - the appropriate analogy is 9 women giving birth to one baby 1 month after conception.

      Then again, this is slashdot, but it's good for learning new stuffs

    14. Re:multi core design by Ihlosi · · Score: 1
      - the appropriate analogy is 9 women giving birth to one baby 1 month after conception. Then again, this is slashdot, but it's good for learning new stuffs

      The woman-month is even more mythical than the man-month in this case.

      *SCNR*

    15. Re:multi core design by chichilalescu · · Score: 1

      mod parent up. i'm not sure wether it's funny, insightful or plain stupid, but it needs to be seen by others.
      as a sidenote, our brain is perfectly capable of performing complex numerical computations. the problem is that we don't have a way of consciously accessing those functions. similar problems will arise for any system designed on "levels".

      --
      new sig
    16. Re:multi core design by Anonymous Coward · · Score: 0

      I think your point that "you cannot parallelize a serial task" is exactly what the author is talking about - how do you take a serial problem and make it more efficient through massive parallelization?

    17. Re:multi core design by smallfries · · Score: 2, Interesting

      While turning intrinsically serial problems into a parallel form would certainly open up a new field it is doubtful that it would be a "a whole new field of mathematics" or did you just like the sound of your hyperbole?

      On a slightly different note; every time there is any article about parallel architecture on slashdot someone raises the problem of inherently serial tasks. Can you name any? Or more to the point can you name an inherently serial task on a realistically sized data-set that can't be tackled by a single 2Ghz core?

      It would seem that we have scaled single-core performance to the point that we don't care about serial tasks any more. All of the interesting performance hogs that we do care about can be parallelised.

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    18. Re:multi core design by Anonymous Coward · · Score: 0

      You cannot parallelize a serial task, any more than you can have 60 people dig one posthole in one second.

      But you can organise 1 post-hole to be finished every second by numerous people digging. I can't really think of any serial task that you'd ever only do 1 iteration of.

      Multi-core should be defined using non architecture or implementation specific parallel paradigms, e.g. the Actor Oriented Dataflow model, tools and compiler technology are responsible for the rest.

    19. Re:multi core design by Anonymous Coward · · Score: 0

      You have to be even more careful as process, task and thread are just names and their meaning tend to change as soon as you change programming language and/or architecture.

    20. Re:multi core design by Hal_Porter · · Score: 1

      We have yet to find a way computationally or mathematically to make intrinsically serialized problems into parallel ones.

      We just need to get more people working on the problem!

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    21. Re:multi core design by hedwards · · Score: 1

      Actually, you'd parallelize that one by just stealing a baby that's already been started. I think that's the most sensible way, or you know you could always rent or adopt if you really need one that fast.

    22. Re:multi core design by skids · · Score: 1

      Speculative execution is a current manifestation of MISD, FWIW. However with the push towards power savings to preserve battery life, it probably won't be as popular going forward.

    23. Re:multi core design by insufflate10mg · · Score: 1

      Owned.

    24. Re:multi core design by imgod2u · · Score: 1

      Adobe Flash?

    25. Re:multi core design by Anonymous Coward · · Score: 0

      Computing the nth element of a sequence defined by a recursive formula.

    26. Re:multi core design by WillDraven · · Score: 4, Funny

      You cannot parallelize a serial task, any more than you can have 60 people dig one posthole in one second.

      We do it all the time around here:
      1 to operate the pile driver
      2 holding up stop/slow signs
      3 riding in the "follow me" vehicle
      4 standing around supervising
      5 cops writing tickets in the surrounding 8 mile work zone
      10 administrators to approve the project
      15 residents jumping out of bed at 6am thinking it'a a bomb going off
      20 people sitting in their cars honking their horns for motivational support

      Of course the whole procedure and traffic carnage can last for months or years, but the actual post being rammed in only takes a second. ;-)

      --
      This is my sig. There are many like it but this one is mine.
    27. Re:multi core design by James+Manning · · Score: 2, Insightful

      How would you know that the calculations were wrong?

      You know later. It's similar to things like the EPIC arch where you might (for example) execute both sides of a branch in parallel, but you don't 'commit' the results until you get the results of the predicate bits, at which point you'll throw away one side's results and commit the other side's.

      http://en.wikipedia.org/wiki/Explicitly_parallel_instruction_computing

      Predicated execution is used to decrease the occurrence of branches and to increase the speculative execution of instructions. In this feature, branch conditions are converted to predicate registers which are used to kill results of executed instructions from the side of the branch which is not taken.

      http://en.wikipedia.org/wiki/Speculative_execution

    28. Re:multi core design by LWATCDR · · Score: 1

      Not only that but let's take their example. The Human brain is really good at some tasks but really not as good as a computer for a lot of other tasks.
      A computer is much faster at calculations than a brain but a human brain is much better at pattern recognition.
      However massive numbers of cores is an interesting concept.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    29. Re:multi core design by smallfries · · Score: 1

      Not quite, but a good effort.

      f(x) = f(x-1)+1 is quite easy to parallelise.
      Same for f(x) = f(x-1) + f(x-2) although doing so has spawned many research papers.

      Would anyone care to name a specific problem that requires computing the nth element of a recursively defined sequence which is hard to do parallelise?

      --
      Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
    30. Re:multi core design by Anonymous Coward · · Score: 0

      But you can parallelize serial tasks 100%! And end up with 60 holes.

    31. Re:multi core design by jd · · Score: 1

      That is absolutely correct. Serial tasks that are parallelized are known as SIMD, and the bulk of parallelism work has gone into this kind of parallelization.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    32. Re:multi core design by Anonymous Coward · · Score: 0

      That's just MIMD. For it to be MISD, the CPUs would have to be synchronized and use the same data at the same time. Just having a big shared memory and performing essentially the same calculations on the same large dataset, but different members thereof, does not make it MISD. Otherwise all SMP computers, i.e. everything from a dual core x86 machine up would be MISD.

  5. Neural Network by Anonymous Coward · · Score: 0

    Isn't that a neural network, you know the things that have been research for over 40 years and do things great but mostly do one thing well and are very poor at doing things in general

    1. Re:Neural Network by Anonymous Coward · · Score: 0

      No, it's not.

  6. Bluudy Blogs by jd · · Score: 3, Informative

    I've left out links to some projects, by request, but everything can be found on their homepage anyway. Anyways, it is this combination that is important, NOT one component alone.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Bluudy Blogs by mattaw · · Score: 1

      Fair points, all of them. Now explicit in the article itself.

  7. Distributed systems by MichaelSmith · · Score: 1

    don't have any precise idea of time (vague ordering of events maybe) nor a shared memory; and not everything routes to everything else

    Sounds like a large scale distributed system. Maybe somebody should ask google about this.

    1. Re:Distributed systems by CarpetShark · · Score: 1

      Boink has half a million computers, many of which probably have more than 2 cores.

    2. Re:Distributed systems by CarpetShark · · Score: 1

      Boinc, even.

    3. Re:Distributed systems by MichaelSmith · · Score: 1

      Yeah though boinc is pretty simple. Just a flat array of machines which do stuff. Google is closer to the spaghetti like structure of the brain.

    4. Re:Distributed systems by CityZen · · Score: 1

      Botnets and Google are the first things that came to my mind when I read "a million cores and beyond".

      Perhaps the first AI to come alive will be very good at stealing money from your bank accounts.

  8. Distributed Computing by sfcat · · Score: 1

    What you are describing is the problems around distributed systems. What would I do with a billion cores? Run tens of millions of instances of VMWare (x8 or 16 each) and write distributed code that runs on millions of machines. No shared memory, communication channels which are slow compared with computation? Basically, that's the line between distributed systems and non-distributed systems. Not that most distributed systems problems are solved, but this is the model that we would be investigating assuming no major shift in the computational model (turning vs quantum, etc).

    --
    "Those that start by burning books, will end by burning men."
    1. Re:Distributed Computing by CarpetShark · · Score: 1

      What would I do with a billion cores? Run tens of millions of instances of VMWare (x8 or 16 each) and write distributed code that runs on millions of machines.

      Not without very serious disk, memory, and network subsystems. CPU cores are not the only bottleneck in a VM setup.

  9. multi-tasking by vivek7006 · · Score: 1

    "Our brains have a lot more than 1 million processing elements and not everything routes to everything else"

    Thats why I can watch pr0n and code at the same time!

    1. Re:multi-tasking by PeterWone · · Score: 1

      Mmmmmmm, Doughnuts! Oooh look, boobies. Hey, where's my doughnut gone?!

  10. Problems with this blog. by Anonymous Coward · · Score: 4, Informative

    The problem posed by the author is somewhat of a straw man argument: "The trouble is once you go to more than a few thousand cores the shared memory - shared time concept falls to bits."

    Multiple processors in a single multicore aren't required even today to be in lockstep in time (it is actually very difficult to do this). Yes, locally within each core and privates caches they do maintain a synchronous clock, but cores can run in their own clock domains. So I don't buy the argument about scaling with "shared time".

    Secondly, the author states that the "future" of computing should automatically be massively parallel. Clearly they are forgetting about Amdahl's Law (http://en.wikipedia.org/wiki/Amdahl's_law). If your application is 99.9% parallelizable, the MOST speedup I can expect to achieve is 1000X, forget about millions. High sequential performance (ala out-of-order execution, etc.) will not be going away anytime in the near future simply because they are best equipped to deal with serial regions of an application.

    Finally, I was under the impression that they were talking about fitting "millions" of cores onto a single die, until I read the to the end of the post that they are connecting multiple boards via multi-gigabit links. Each chip on a board has about 20 or so cores with privates caches or local store. They talk to other cores on other boards through off-chip links...... SO isn't this just a plain old message passing computer?! What's the novelty here? Am I missing something?

    1. Re:Problems with this blog. by jd · · Score: 2, Insightful

      The main problem is that it's horribly hard to pass that many messages around without the overheads of the network exceeding the benefit from the parallelization. If they have found a way to reduce this problem, I'd call that a major novelty.

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    2. Re:Problems with this blog. by WheelDweller · · Score: 1, Interesting

      I've felt the same way; just _because_ you can create 1,000,000 CPUs connected to a single bus doesn't mean it's the right thing to do. We're still limited to physics, and if they're x86 cores, we're still dealing with all that "address bus is multiplexed" crap that was a problem in 1985. (!)

      I have the feeling that, if we're so enamored with multiple cores, they need to be smaller, simpler, and able to communicate amongst each other. This is how (in the real world) multiple CPUs actually map like the human brain.

      Just how much memory and refresh cycles ARE there in synapse? (See the point?)

      If we can arrange types of CPUs, give them the ability to communicate with every other node, put that 1,000,000 into a net with neural-net style layouts, and THEN we're talking.

      Consider the Texas Instruments 1-bit CPU. Only 16 instructions and something like 7 of them are no-ops! All programs take the same amount of time to execute. You can make BANKS of these things, to create 2048-bit computers if you like. Of course, it helps to do this at the core-level, not the 8-pin DIP level. :)

      Unfortunately for the traditional integrators, THIS is how we're going to the next level of operation. The PC has little in common with brains. It's a metaphor.

      --
      --- For a good time mail uce@ftc.gov
    3. Re:Problems with this blog. by GPSguy · · Score: 2, Interesting

      In weather forecasting, we find ourselves starting, stopping and waiting. Some of the tiles on which we compute will be trivially simple to complete, while others will not run to something approaching a numerically complete solution for some larger number of iterations. Ttherefore, we have to wait for the slowest computation/solution before we advect results to the surrounding tiles and begin the process all over again.

      The nature of parallel problems isn't so simple that you generalize about how synchronization isn't important. I've also got examples of two parallel codes which have to stop, synchronize data and restart, which is very inefficient. The ability to scale the combination of shallow water equations and non-hydrostatic weather codes into a large, embarassingly parallel system would be a Good Thing for earth-system modeling in general, but is practically difficult, both in its core nature and because message passing isn't trivial at some point in a large MPI system. It simply becomes unwieldy and breaks down.

      When you're parallizing a Monte Carlo problem, you can achieve significant speedup with little concern for asynchrony.When you submit a problem where each computation requires waiting for all of its surrounding neighbors, asynchrony, using conventional approaches becomes problemmatical.

      I suspect that, while this project might not demonstrate 1megacore high performance, that they're on the right path.

      If you look at today's multicore processor HPC, you see some (relatively) small number of cores on a single board, communicating at higher speeds than inter-board links, but the interboard links tend to be sorta fast, and tied to an interconnect fabric of some sort. This can be faster or slower depending on the base technology, and little things like bisectional bandwidth, and subscription. If one's not running some form of OpenMP (essentially threaded) environment, which also often equates to SM but doesn't mandate it, one can take significant advantage of the on-board higher speed interconnects. What's off the board doesn't affect your outcome.

      On the other hand, if you have to subscribe to DM-parallelism, today's offerings are similar with minor tweaks in performance: MPICH, MPICH2, OpenMPI, etc., all striving to give the best multi-NODE intercommunication one can broadcast, and then gather back in. One of the key drawbacks, however, is that most times, I/O is scatter-gather, or, essentially serial. One, or some small subset of intercommunicating nodes gathers all the results, decides how to parse them, and/or commits them to results.In general, during a big I/O operation, the nodes wait.

      In the original author's description, there's a bunch of relatively slow interconnects to allow a new topology of interconnect. A bunch of gigabit doesn't equal a QDR InfiniBand connection, but by not tying the interconnect to a fixed, store and forward interconnect, you just MIGHT gain a bit of efficiency.Somehow, I think 6 GBE interconnects is light, but I'll let better minds than mine optimize that over time.

      This may well be a "plain old message passing computer" but it's novel in its reduced dependence on scatter-gather and store-forward technology.

      --
      Never ascribe to malice that which can adequately be explained by tenure.
    4. Re:Problems with this blog. by imgod2u · · Score: 1

      In this case, time is from a computational standpoint, not real time. The running program, for the most part, has no concept of actual time. It has an idea of event sequences and what should happen before something else happens. This is true of multi-threaded applications as well (shared memory model). They still rely on events being synchronized at some point or other and that at any point in their run, the memory model they expect remains the same.

      At the end of the day, the biggest issue we have is that memory and computation are so separate. You have data and you have instructions; you have functions and you have pointers. This means that programs aren't atomic and they rely on some external state (memory) to remain consistent in order to function correctly.

      One of the things about the brain is that memory is built in to the structure. The motor system doesn't need to go all the way to the hippocampus to retrieve spatial data every time it does something.

    5. Re:Problems with this blog. by Anonymous Coward · · Score: 0

      The future of computing going to be massive parallelism because that's what we'll have.

      Seriously, whether massive parallelism can do everything serial computing can do or not. There's limit on the increases in speed of computation. It will increase but with diminishing returns. There's no limit on the size and number of processors. These can easily increase. So there you have it. Amdahl's "laws" is only an unproven rule of thumb. It might be true but if it is, sorry about that.

  11. Human brain != computer by i-like-burritos · · Score: 2, Insightful
    The things we use computers for are different from the things we use humans for.

    Computers are consistant and predictable. The human brain is not.

    We have billions of human brains cheaply available, so let's use those when we want a human brain. And let's use computers when we want computers.

    1. Re:Human brain != computer by Anonymous Coward · · Score: 0

      We use humans for different things than computers? Really? I think you've missed about the last 50 years of automation...
      One of the main things computers are used for is doing what were formerly human tasks.

    2. Re:Human brain != computer by iammani · · Score: 1

      I would say Brain = Computer; only the Input Output ports/devices are different. Say your task is to find a picture of Megan Fox among a bundle of photos, you could use a brain (along with necessary I/O devices of course) to perform this task. You need to input these photos (along with a few marked snaps of Fox, if the brain does not already know her), through the eyes attached to it and you could ask the brain to output the result using the mouth attached to it.

    3. Re:Human brain != computer by chichilalescu · · Score: 1

      Yes, because only humans were able to do them. But a computer can count much faster and much more accurately than a human, BECAUSE it is consistent and predictable.
      In practice the relationship is:
              human brains are very good at generating algorithms to solve specific problems.
              computers are very good at applying the algorithm.

      --
      new sig
    4. Re:Human brain != computer by aramosfet · · Score: 1

      Let me correct that for you, When you say "different things" its means things computers cant do, like doing research, figuring out how to build complex things etc.automation is done to things which are routine so that the brain can spend time doing what computers cannot.

    5. Re:Human brain != computer by Anonymous Coward · · Score: 1, Insightful

      Then all we have to do is, generate a algorithm (that can run on a computer) that is good enough at generating algorithms to solve specific problems.

      Mods, feel free to mod off-topic

    6. Re:Human brain != computer by dargaud · · Score: 1

      The things we use computers for are different from the things we use humans for.

      Yeah, zombies can't eat computers...

      --
      Non-Linux Penguins ?
    7. Re:Human brain != computer by chichilalescu · · Score: 1

      the best we came up with (as far as I know) is to have an algorithm that mimicks the human brain :)
      so it would only be useful for robots going in places where humans can't follow. because, at least for now, we lack the technology of efficiently simulating the human brain. These guys are trying to do just that (I think): rethink the hardware to simulate brains more efficiently.

      --
      new sig
    8. Re:Human brain != computer by MemoryDragon · · Score: 1

      I would not call computers entirely predictable, there are too many influences which can derail them, for instance an accidental bit flip, hardware design issues etc...

    9. Re:Human brain != computer by wvmarle · · Score: 1

      I think this discussion is mainly relevant considering we are reaching end points hardware-wise. There is only that many transistors one can put in a processor. There is only that many GHz silicon can manage. So we're reaching the end point of the processor as single unit - the logical step is not to increase the one processor, but to take more of those processors and try to let them work together. The human brain may be an interesting model for that.

      And of course in the end Intel et. al have to think of the longer term future.

    10. Re:Human brain != computer by Xest · · Score: 1, Interesting

      I was going to post about this, but you've already covered part of it, so I'll reply instead.

      I take issue with this statement from the summary:

      "But anyone who argues the brain isn't a pretty spiffy processing system ends up looking pretty silly."

      No, they don't look silly, they look smarter and more knowledgeable about the topic than the idiot who made this comment. The human brain has multiple flaws, and whilst it's excellent for some things, it's terrible for others. The human brain relies on emergence, which is great for solving some problems but not so for others. To give an example, the human brain is great for picking out an object in a scene, but hopeless for calculating with a reasonable degree of accuracy the actual distance to that object- the margin of error for most people is on average going to be quite large.

      But also the human brain is prone to mistakes, minor changes to it's working can make it come up with odd results- notice how sometimes something you know inside out you just happen to get wrong? Look at how sometimes people are mid-conversation, talking about something they know in depth and suddenly they forget what they were going to say- this is because processing in the brain has gone completely off track.

      The fundamental problem with copying the brain is that it's far from perfect, it doesn't give us the level of preciseness that classic computing generally does. It doesn't guarantee there wont be fluctuations in a task every single time it performs that task.

      A brain like computer would certainly be useful, it could help solve some interesting problems, but it's most definitely not perfect, and it's most definitely not the ultimate solution to our computing problems- there are plenty of scenarios where it would be completely useless. This is after all, why we bother to have computers in the first place.

      I do not see the brain as any more spiffy than computing technology, sure its amazingly powerful, but there's a lot that current computers can do that the brain can't- serious large scale number crunching for example. Could we ever trust a brain like model to crunch numbers when we know full well the brain could make a mistake giving erroneus results on a few of those numbers where the computer would not?

    11. Re:Human brain != computer by f3r · · Score: 1

      We have billions of human brains cheaply available

      I wouldn't say raising a human up to adulthood is cheap...

    12. Re:Human brain != computer by perryizgr8 · · Score: 1

      Computers are consistant and predictable. The human brain is not.

      this is because we do not understand the algorithms/software running inside the brain. believe me, to a newbie computer user, a computer is just as unpredictable as a normal person. sometimes computers are unpredictable even to me, especially if they are running m$ software!
      i also think that the brain is exactly analogous to a digital computer.

      --
      Wealth is the gift that keeps on giving.
    13. Re:Human brain != computer by Wescotte · · Score: 4, Insightful

      but hopeless for calculating with a reasonable degree of accuracy the actual distance to that object- the margin of error for most people is on average going to be quite large.

      I disagree. How can we learn to throw a basketball into a tiny hoop from far away without having very accurate estimates? Think of any sport and just how many good estimates are done VERY quickly and pretty damn accurately. How can a painter look at any scene recreate (to scale) what they see on canvas? I'd say are brains are pretty damn good at calculating with very high accuracy.

      Just because I can't say the hoop is exactly 32.74578453 feet from me doesn't mean I don't know how far it is away. If I can throw the ball into the hoop then I have accurately calculated/predicted the distance.

      Look at how sometimes people are mid-conversation, talking about something they know in depth and suddenly they forget what they were going to say- this is because processing in the brain has gone completely off track.

      I'm having a hard time coming up with a good analogy but I suspect these situations are similar to interrupts in computers. Something more important requires the brains resources at that time. It's not like the information is forgotten it's simply not accessible at that movement in time. The information is never "lost" it's just unavailable for a time. If it was lost you wouldn't have the "oh yeah" moments when you remember it or look it up again. You recognize it because you already knew it.

      While I agree the brain isn't as effective at large scale number crunching I do believe it's something the brain can be trained to do. There are plenty of people out there who can do insanely complex arithmetic in their heads. I suspect the reason we all don't have such skills is because we don't need them.

      but there's a lot that current computers can do that the brain can't- serious large scale number crunching for example

      There is no real reason in the survival of the fittest terms for us to be able to accomplish such tasks. So those resources in the brain were put to use on other tasks like accurately processing visual and audio data. I can hear or spot a predator very quickly and accurately in all types of environments and lighting conditions. If we use a computer to perform these tasks we realize just how much computation is required. There is no reason these resources couldn't be allocated to general number crunching. It's just evolution says they are better used for other tasks.

    14. Re:Human brain != computer by Anonymous Coward · · Score: 0

      So we wire up millions of mentats?

    15. Re:Human brain != computer by Anonymous Coward · · Score: 0

      Then again, we do use computers to solve problems at which the human brain is good, ie pattern recognition for autonomous vehicles and for translation of human language, not necessarily because computers are better at it, but because for some reason we don't want a human there, ie because the task is humongously boring or dangerous.

      Besides, the best human brains are not exactly cheap.

    16. Re:Human brain != computer by itsdapead · · Score: 1

      this is because we do not understand the algorithms/software running inside the brain.

      I thought that enough was known to suggest that the brain works more like a neural net than a digital computer.

      i also think that the brain is exactly analogous to a digital computer.

      Or is it digitous to an analogue computer?

      Seriously, though, Neural Net != Digital (Turing/Von Neumann) computer. No real concept of an algorithm, no real concept of "computability" (only ever delevers a good guess, not an analytic solution, doesn't even require the problem to be formulated).

      ...and while a computer can simulate a neural net, vice-versa is a bit more tricky...

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    17. Re:Human brain != computer by Xest · · Score: 2, Interesting

      "I disagree. How can we learn to throw a basketball into a tiny hoop from far away without having very accurate estimates?"

      That was precisely my point, they're still estimates. The human brain can judge based on experience how to throw the ball to get it through a hoop, but can it calculate the distance well enough, and consistently enough to calculated the angle from the feet of the thrower upto the net to perform some action such as a precise manufacturing task?

      These are two very different things, and are useful for two very different purposes. Being able to throw a ball right some, or even most of the time may be fine for a game of basketball, but is this ability good enough to calculate the values for some complex and precise engineering application? Absolutely not.

      "The information is never "lost" it's just unavailable for a time. If it was lost you wouldn't have the "oh yeah" moments when you remember it or look it up again. You recognize it because you already knew it."

      Absolutely, it's not lost, the issue is that the brain depends on emergence, and emergent systems can be quite vulnerable to minor variations in the initial conditions. In this case the initial conditions for the moment in question will often be set by the senses, but could also occur as a result of the happenings in the brain at a prior moment, or could be caused by some chemical imbalance (i.e. taking drugs). The problem is that although the information isn't lost as such, it's just hard for the brain to track it down again when it doesn't have the conditions required to get back to that information, again, hence why it can take a while to remember what you were going to say again- it's not easy for the brain to get back to the state required, or a near enough state such that it can get the information it needs. In contrast, it's quite easy in computers, because we have explicit memory addresses and so forth to work with and that can be persisted and referred to- or to put it rather simplistically (and far from perfectly) we don't need to rely on running the execution process again to find the data if we've done things right.

      "While I agree the brain isn't as effective at large scale number crunching I do believe it's something the brain can be trained to do. There are plenty of people out there who can do insanely complex arithmetic in their heads. I suspect the reason we all don't have such skills is because we don't need them."

      Again, absolutely I agree, but the issue is consistently, you may be able to train it but when it's so vulnerable to minor changes in the way it works, can it do it consistently?

      "So those resources in the brain were put to use on other tasks like accurately processing visual and audio data. I can hear or spot a predator very quickly and accurately in all types of environments and lighting conditions. If we use a computer to perform these tasks we realize just how much computation is required."

      That's again really the key- the brain is brilliant for some things, so much so that a current style of computer just isn't really fit for the job. It's not so much that a lot of computation is required, it's just that the type of computation we do now is quite different from the type of computation a brain does and this is what TFA is getting at- to solve these sorts of problems we need a different paradigm. What I disagree with though is that we need a different paradigm in general- I don't believe we do because the paradigm being suggested isn't ideal for the things current computers are good at.

      As with almost everything, I suspect it's a case of six of one, and half a dozen of the other- there isn't one perfect solution, we ultimately need both solutions for different types of problem, but shouldn't completely write one off at the expense of the other.

      To cut a long story short, the fundamental difference is that current computers are largely predictable and formally provable. Brain style computing is chatotic and complex, we know it'll come up with a solution

    18. Re:Human brain != computer by mangobrain · · Score: 1

      I disagree with the idea that the human brain tackles the task of throwing balls through hoops by mathematically analysing the problem. There is no numerical estimation going on.

      What the brain needs to know is how to coordinate the motor system so as to throw the ball roughly where it needs to go, which it learns through trial and error. The first few times one throws a ball (having never thrown one before), one will miss; success rates will improve with practice, but will never reach 100% even for duplicate scenarios. With enough practice - both in terms of quantity, and variety, of scenario - patterns will begin to emerge which can be exploited to generalise the necessary motions, adjusting them to previously unencountered scenarios, but I contend that there are still no numerical methods involved.

      People forget all too easily that the brain is connected to the body, is specialised to the task of controlling that body, and gets an awful lot of rapid, rich feedback from it. I suspect this has more to do with the brain's efficacy than most people realise.

    19. Re:Human brain != computer by alder · · Score: 1

      How can we learn to throw a basketball into a tiny hoop from far away without having very accurate estimates?

      The answer, IMHO, is in the question - "we learn". We do the learning until the brain remembers to link a visual pattern with a muscle activation pattern that gives a satisfactory result. The good bit in all this is that the pattern recognition fortunately is flexible enough to learn a few major patterns and be able to more or less accurately intrapolate and sometimes extrapolate to approach the goal in a somewhat different environment. When the matching->activation cycle "fails" brain learns (has to learn) a new pattern. Some learn it (the ball throwing pattern) quicker, some just cannot - their brain "machinery" is just not tuned for those tasks.

      Think of any sport and just how many good estimates are done VERY quickly and pretty damn accurately.

      Well, even though the result for some :-) who tries is "pretty damn accurate", for a lot/most it usually is not. Those who do it accurately learned certain patterns to consistently, more or less, recognize them, extrapolate, and execute the appropriate neuron firing patters to reach the goal.

      The missing key here is probably this - while it looks the "estimate" is accurate, a brain does not really "know" where the target is. Unless another pattern is learned - match visual pattern with an "abstract" (for a brain) concept of a distance.

      The information is never "lost" it's just unavailable for a time.

      That would be really nice, but unfortunately it is lost forever and ever.

      If it was lost you wouldn't have the "oh yeah" moments when you remember it or look it up again.

      We are fortunate that (and for some "if") enough of a pattern remains to recognize the same or similar bits in the future.

      A counter example: déjà vu - a brain pattern matching machinery becomes so thoroughly confused :-) that it "matches" an event that has not occurred before...

      There is no real reason in the survival of the fittest terms for us to be able to accomplish such tasks. So those resources in the brain were put to use on other tasks like accurately processing visual and audio data

      The keyword here is "accurately". It is simply not applicable at least not in a sense we used to associate with what machines are able to do. For our brain there is always a degree of uncertainty in the pattern matching. Sometimes the matching is so far from "accurate" that a matcher gets eaten :-)

    20. Re:Human brain != computer by Wescotte · · Score: 1

      it's quite easy in computers, because we have explicit memory addresses

      Yes, it's true you can find something quickly if you have the memory address. However, you still need to know the address of what you want. A dictionary is a great way to verify the spelling of a word but you still need to have a good idea of how the word is spelled to find it.

      A computer could simply check every address via brute force to find what it needs but that isn't generally what happens. I assume our brain works somewhat similar to a database. You make a query and get results. Those results can be used to make another query and so on and so forth until you may eventually find your desired result.

      Where are my keys? I dunno... Is it where i normally put them? No. Let's retrace my steps.. Found them. I don't have a specific "address" to find my keys but I can usually locate them via a similar method. However, if I always put my keys in the same place then I have the location already. Like a computer I have the place to find them and it's only a one step process. However, as things get more complicated you simply can't juggle that many direct addresses to information and nor does a computer.

      True, we don't say oh I left my keys at 0xffa12b012 but that is because our conscience mind doesn't have root access. It has to access everything some sorta limited access API. I suspect we will continue to hack our brains until we gain such access.

      Being able to throw a ball right some, or even most of the time may be fine for a game of basketball, but is this ability good enough to calculate the values for some complex and precise engineering application? Absolutely not.

      I would argue that are brains can and will. It's just a matter of time before they naturally evolve to do such things. I believe autism/savant types are simply evolution trying to give us those abilities. However, I wouldn't downplay the precise engineering that goes into things like sports or arts. It's just our brains were able to attempt to these easier as they relate much closer to things we already can do well. It will be.. We just haven't gotten there yet. Our brains will evolve to do such tasks it's just we haven't needed them to do it.

      Again, absolutely I agree, but the issue is consistently, you may be able to train it but when it's so vulnerable to minor changes in the way it works, can it do it consistently?

      Well, computers seem consistent but they do fail. It could be a software bug, it would be a hardware bug. Given enough time bits will randomly flip and may cause inconsistency in calculation. A computer flips a sign bit and suddenly 1 * 9 = -9. Sure some (or even many) of these can be avoided by adding error detection/correction but it will never catch them all. Perhaps a human brain is doing significantly more calculations than modern computers. I'm guessing the probability of random bit error in the brain/computer are close and it's simply a matter of the brain doing significantly more calculations per second that it happens frequently.

    21. Re:Human brain != computer by Wescotte · · Score: 1

      I think there is numerical analysis involved it's just we don't directly have access to it. Our conscience mind doesn't have root access and thus is limited to some sort of API and there is private data structures I simply can not access via my conscience mind.

      True, in the case of the basketball we only limited feedback from our throw function. It returns make/miss overthrow/underthrow type results. However, even with our initial throw we have some basis for how far we can throw something. We might not think of it directly in terms of feet but there is some built in relation to some unit of measurement in our heads. This basic unit is what guides all internal calculations/conversions.

      This is how when somebody says toss the ball twenty feet I can get it close to twenty feet. I have some idea of what twenty feet is as a unit of measurement. I have some idea of how far I can throw is ball. I have some idea of how much force I need to exert to throw it twenty feet. Sure it's not going to be dead on accurate/consistant without extensive practice.

      You might say that you could build a robot to throw the ball exactly twenty feet every time. Sure, you can factor in things like wind, elevation, etc etc. However there is always going to be something else that could cause your robot to fail. It could just fail mechanically over time. I could unplug it or just push it over. Or some other influence simply not accounted for.

      The reason our brains can't do these things accurately is because we don't need them to. The time and effort to train yourself to do such a thing is insanely large compared to building (or in modern times) buying a tool to achieve the desired results. If a tool didn't exist then our brains would develop the ability to do just that over time. It might not happen in a single generation but it would happen.

    22. Re:Human brain != computer by Wescotte · · Score: 1

      I agree it's pattern matching but I also consider that to be a mathematical process.

      A machine/computer can only be as accurate as it is because we isolate it. We limit the number of things that can go wrong. A brain doesn't have that luxury. Practice seems to be learning to isolate a task from unknown and unrelated external forces/input.

      I see no reason why a brain can't be trained to perform the exact same task as a computer/machine being as accurate and consistent. It's just we don't do it. We find short cuts. We make tools. If we had to do it that way our brains would eventually adapt to do just that.

    23. Re:Human brain != computer by ceoyoyo · · Score: 1

      Human brains are expensive, difficult to program, get bored, wear out and take lots of breaks. There is a huge market for something that can do some of the jobs of a human brain but with some of the desirable properties of a computer.

    24. Re:Human brain != computer by perryizgr8 · · Score: 1

      this is because we do not understand the algorithms/software running inside the brain.

      I thought that enough was known to suggest that the brain works more like a neural net than a digital computer.

      how is a neural network different from a multi-core digital computer? you input data into it. it processes the provided data using pre-defined algorithms and generates output. are you suggesting that a neural net does not need any software/firmware? i am almost completely ignorant about the working of a neural net (and i didn't find anything of value in wikipedia). but still i find it hard to believe that neural nets can do speech-to-text, recognize faces, match images without being given some software/algorithms.

      Seriously, though, Neural Net != Digital (Turing/Von Neumann) computer. No real concept of an algorithm, no real concept of "computability" (only ever delevers a good guess, not an analytic solution, doesn't even require the problem to be formulated).

      how can something function if it does not know what to do? an algorithm is what tells a computer what to do. a neural net has to have some sort of instructions given to it before it can do any worthwhile work. and how can anyone/anything answer a question without it being formulated?

      --
      Wealth is the gift that keeps on giving.
    25. Re:Human brain != computer by Xest · · Score: 1

      I should point out that I'm not basing on speculation as to how the brain works, we know for sure that it works based on positive feedback cycles, resulting from stimuli, and so the point is that the brain always has to go through this process to find something, sometimes the wrong attractors are the ones that benefit from the feedback loops and that is why you don't get what you intend, and why the human brain does not consistently find the same solution.

      So (at least to the degree we have reliable hardware) what I'm saying is we can store a set of instructions and data in memory and be sure that if we store that address, we know we're always going to get the same result. In a brain like system we provide the stimuli which effectively act as seeds, but depending on other, non-deterministic events we can't guarantee that it will be the same.

      So you see, I'm not speculating in my points- your theory that brains can and will evolve to be the same isn't true, or at least, wont be within a reasonable time frame (likely millions of years) because they are simply just different systems.

      You're not wrong in drawing parallels between the brain and the computer, and you're not wrong in drawing on the adaptability of the brain. You're also not wrong in that they can simulate each other to a certain degree, but where you are going wrong is in missing the point that they aren't the same, they absolutely do work differently. It's like the difference between a mountain bike and a road car- both let you travel along the ground faster than walking, and whilst your road car can go off road, it's going to be much worse at it than the bike, and just as the bike can go on the road it's not as good at it as the car- both cross over in their roles, but each is better at specific tasks. So whilst you may be right that in millions of years the brain can do what the computer can, the point would be that the brain can only do what the computer can now, whilst the computer in millions of years will likely do things the brain can't and vice versa. They'll still ultimately have their differences and their different suitabilities in different circumstances.

      Things like neural networks will take you partial way to understanding the way the processing in the brain works and how we can simulate that on computer, so if you're interested then they're well worth looking into and playing around with. It's quite a good exercise because you can see how emergent models like that have their benefits and weaknesses, and although you're limited by the fact you are working on classic computer hardware, as I say, it demonstrates some of the fundamental ideas.

    26. Re:Human brain != computer by Wescotte · · Score: 1

      In a brain like system we provide the stimuli which effectively act as seeds, but depending on other, non-deterministic events we can't guarantee that it will be the same.

      I guess I don't understand how the non-deterministic nature really has any affect on it's equivalency to a computer. Like how a DFA and NFA are shown to be equivalent.

      I've just recently taken my first AI course but unfortunately it just turned out to be a very boring algorithms course. It wasn't nearly as comprehensive as the required (for CS degree) algorithms course either. I am very interested in the subject and know just the very basics of neural networks but do stumble on a few articles about them from time to time

      Can you recommend any books on both neural networks and the brain itself?

    27. Re:Human brain != computer by Xest · · Score: 1

      I'm not sure of any that really cover the brain as well as neural nets, but a book with decent neural net coverage, and an excellent overview of machine learning is this one:

      http://research.microsoft.com/en-us/um/people/cmbishop/prml/

      Depending on how far you wish to study the subject, the next stop is somewhere like the Cambridge university bookstore- I'm not sure if you live in the UK but if you do and are ever near Cambridge it's worth a look- their books can of course be ordered online, but in store they offer catalogs with upcoming books which always worth a peruse through too as it tends to cover books that are really cutting edge on the topics in question.

      In fact, I just did a search on their site and found this, I've never read it but it may be exactly what you're looking for:

      http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=9780521421249

      A slightly more light hearted, much easier read that helps illustrate some of the quirks in the human mind is the following:

      http://www.mindhacks.com/book/

      Some of the examples are good as illustrations of how it's easy to feed the brain with certain stimuli that can make it come to the wrong conclusion, one example that comes to mind in that book is the listing of various words related to some topic I think their example was sleeping or something, and then asking someone to recall those words, people will almost always come up with a common word despite that word having never been in the list. I think their example was words related to sleeping like 'pillow', 'tired', 'yawn', 'night' and a bunch more yet they omit 'bed' or something like that, ask someone to do the activity and they will nearly always falsely conclude 'bed' was one of the words- effectively bed is a 'false' attractor in this case. It effectively illustrates that whilst the brain may come up with most of the correct words, it can come up with incorrect but related words too, for some problems this may be acceptable, for others not so.

    28. Re:Human brain != computer by UnknownSoldier · · Score: 1

      > There is only that many GHz silicon can manage.

      That's the unspoken 4 GHz silicon barrier.

      If you switch to another element you can raise the barrior to a ~ 400 GHz, the problem is cost: Silicon is dirt cheap.

    29. Re:Human brain != computer by Anonymous Coward · · Score: 0

      Computers don't _behave_ in a way that's consistent and predictable to us. Look up "Heisenbug" for some examples of how difficult we find it to predict how a computer will behave. We know they are in fact consistent, because we know how they work, but that turns out not to help. If we knew exactly how the brain worked, we'd agree that was consistent and predictable too, in the same useless sense that a computer is.

      The "brain isn't a computer" arguments often look a lot to me like this:

      A: Pebbles are made of atoms
      B: Don't be stupid, water is made of atoms and pebbles aren't anything like water. So pebbles can't be made of atoms

      The fact that a pocket calculator is a computer, and your brain doesn't seem to work like a pocket calculator, tells you NOTHING about whether your brain is in fact a computer.

      Nearly always the people making these arguments know almost nothing about computation, which is kind of sad. For example, they often imagine that given a computer, an arbitrary program, and some input you (with suitable training or equipment) can deduce whether the program will stop or run forever when provided with that input. Seems like a trivial question, right? Nope, unsolvable.

    30. Re:Human brain != computer by itsdapead · · Score: 1

      I am not an expert, but the back of the cereal packet not-even-wrong explanation is that neural networks are trained, not programmed: You feed in an input, look at the output, strengthen the links that lead to correct bits of the answer, weaken the ones that don't. The "programming" is the weighting of the links between the nodes in a trained net. There is no guarantee that you will get the right output for the right input - just a probability, but the upside is that there is no "program" as such so it can be used for producing best-guess solutions to problems for which you dont have an algorithm. Good for image recognition and the like. Neural net "software" for digital computers is used to simulate and/or train simulated neural nets, its not software "for" neural nets.

      --
      In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
    31. Re:Human brain != computer by perryizgr8 · · Score: 1

      thanks. i was completely unaware of this!

      --
      Wealth is the gift that keeps on giving.
  12. green array chips - 144 cores per die by Anonymous Coward · · Score: 1, Interesting

    tiny Forth-based computers with up to 144 cores on a chip, and that's in a low tech 180 nanometer process. Each core has a rather fast ALU but just a few hundred(?) bytes of memory. Seems closer to neurons than the thing that guy is making where each core is a 32-bit ARM processor.

    link.

  13. Damaged Brains by b4upoo · · Score: 3, Insightful

    Some folks with severely damaged brains seem to make better human computers than people with healthy brains. Rain Man leaps to mind as well as other savants. It seems that when some parts of the brain are impaired the energy of thought is diverted to narrower functions. Perhaps we need to think of delivery more energy to less cores to make machines that do tasks that normal humans are not so good at doing.

    1. Re: Damaged Brains by imakemusic · · Score: 1

      Isn't that the status quo? I currently have a relatively low-power computer that can calculate Pi to an impressive amount of decimal places in less than a second - considerably better than I can! However it still can't hold a decent conversation.

      --
      Brain surgery - it's not rocket science!
    2. Re: Damaged Brains by perryizgr8 · · Score: 1

      i think you are confusing a hollywood film with the real life. rain man does not exist out of the movie.

      --
      Wealth is the gift that keeps on giving.
    3. Re: Damaged Brains by Wescotte · · Score: 1

      I think I've decided to no longer consider their brains severely damaged. Their brains seem to be wired in a manor that puts communication (and other things) at a lower priority. The link below is a video demonstrating how a person originally classified as severly mentally disabled was simply unable to communicate in the manor we are accustom to.
      http://www.wimp.com/autisticgirl/

      I think it's simply evolution. While these people who never last in the hunter/gather world in modern times we care for them and in some cases they are able to lead "normal" lives and reproduce. These traits get past on and eventually perfected to the point where it isn't such a resource drain on their brain. Now, they can pick up those other skills like being able to communicate and function "normally" but with a new specialized part of the brain.

    4. Re: Damaged Brains by Anonymous Coward · · Score: 0

      "...the energy of thought ... Perhaps we need to think of delivery more energy to less cores to make machines that do tasks that normal humans are not so good at doing."

      To get cores to do things that humans are good at takes a little more than just delivering more energy to those cores (that's called overclocking).
      There certainly is no such thing as "energy of thought" that we can simply deliver more of to get cores to become smarter. What we can do is design smarter cores and smarter architectures to hook those cores together, and that's what people are trying to do.

    5. Re: Damaged Brains by Anonymous Coward · · Score: 0

      Some folks with severely damaged brains seem to make better human computers than people with healthy brains. Rain Man leaps to mind as well as other savants.

      You do realize "Rain Man" was just a movie, right?

    6. Re: Damaged Brains by theswimmingbird · · Score: 1

      Aw. My "slow" Windows machine has self-worth now.

    7. Re: Damaged Brains by mydirtynuts · · Score: 1

      In considering autism sectrum disorders damage, one surmises that such morphology distributions autists exemplify are in fact disease states in the pathological sense. This is incorrect. Though a disease state may elicit behavioral/cognitive/emotional exhibitions of the affected, without anatomical substantiation, it is a mere condition, rather than an insult of damage. "There is evidence for functional abnormalities and metabolic dysconnectivity in ‘social brain’ circuitry in this condition, but its structural basis has proved difficult to establish reliably." see McAlonan et. al. (2005). Mapping the brain in autism. A voxel-based MRI study of volumetric differences and intercorrelations in autism. Brain. 128(2):268-276 & Mosconi et. al. (2006). Structural MRI in autism: Findings and future directions. Clinical Neuroscience Research, Volume 6(3-4): 135-144 Now, although individuals with brain damage may exhibit similar symptoms following a trauma such as shorter working memory, or demonstrate an insult of capability to the general mean in a capacity, such as theory of mind such as in organically identified disease like down syndrome, without a target of interest, and a consensus; It can't be a disease, rather a condition or disorder. You wouldn't call pseudomyopia a disease, would you? Your post should have been modded funny, "Perhaps we need to think of delivery more energy to less cores to make machines that do tasks that normal humans are not so good at doing." an aprosodic individual (one with damage) may be able to better detect the dry analysis of your speech than a "normal person" but in reality, like a blind man and braille. Aprosodics are lacking the emotional reception of tonality in speech but compensate with the scrutiny of semantics, grammar, and meter. Uninhibited by an excess of possibly counter stimulating stimuli, working memory widens the small patch of input. Recruiting more directed focus in absence of paradoxical stimulation, an analysis becomes more manageable,to say nothing of platicity and neurogenesis following trauma in the younger. What we need is computers with quantum synesthesia.

    8. Re: Damaged Brains by Anonymous Coward · · Score: 0

      You mean like how it is now? Where I use a computer to do things like math, sorting, searching, storing large volumes of data with precision while the high level, conceptual things are left for me? We already figured that one out. If that's all that computers are going to do, we might as well stop now. Most further work in this area is a waste of money.

  14. Link with IMAC ExaScience lab? by Hedon · · Score: 2, Interesting

    Is it coincidence that earlier this month there was a press release from IMEC regarding the issues of massively scaling up computational power ("exascaling")?
    Press blurb can be found here.
    Killer application would be "space weather prediction".

  15. ANALOG REVIVAL!!!!111!!!11!1!1 by Xanavi · · Score: 1

    always seemed logical the next big step would be a return to analog :P

    1. Re:ANALOG REVIVAL!!!!111!!!11!1!1 by Wescotte · · Score: 1

      What's really going to blow your mind is that analog doesn't really exist ;)

    2. Re:ANALOG REVIVAL!!!!111!!!11!1!1 by necro81 · · Score: 1

      Talk to any chip designer and they'll tell you that digital doesn't really exist. Want to understand how to get a MOSFET to work properly in silicon? you'll need to model it as a perculiar analog device.

    3. Re:ANALOG REVIVAL!!!!111!!!11!1!1 by John+Hasler · · Score: 1

      > you'll need to model it as a perculiar analog device.

      No, as a quantum mechanical device.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    4. Re:ANALOG REVIVAL!!!!111!!!11!1!1 by ZonkerWilliam · · Score: 1

      I agree, a digital circuit is most likely the worst way to simulate intelligence, since all intelligences, as we know it, uses analog processing. I'm wondering if we ever had put more emphasis on analog computing that we would already have human level AI?!

  16. Distributed Computing by thomasinx · · Score: 2, Informative

    The problems with "coherent memory/identical time/everything can route to everywhere" isnt only seen when you get up to a million cores. I've done plenty of work with MPI and pthreads, and depending on how it's organized, a significant portion of these methods start showing inefficiencies when you get into just a few hundred cores.

    Since there are already plenty of clusters containing thousands upon thousands of individual processors (which dont use coherent memory..etc), the step to scale up to a million would likely follow the same logical development. There should already be one or two decent CS papers on the topic, since it's basically a problem that's been around since beowulf clusters were popularized (or even before then)

  17. Put BeOS on it.. by moooooooo · · Score: 1

    and write an OpenGL app which puts multiple videos on the panes of multiple rotating truncated icosahedrons a la the old famous BeOS rotating OpenGL cube app from years ago.

  18. Last time I run a parallel program... by ctrl-alt-canc · · Score: 2, Interesting

    ...it seemed to me that Amdahl's law was still alive and kicking.

    1. Re:Last time I run a parallel program... by palegray.net · · Score: 4, Insightful
      Given you statement, why would you link to a document entitled Reevaluating Amdahl's Law? Did you even read what you linked to? Here's an excerpt:

      Our work to date shows that it is not an insurmountable task to extract very high efficiency from a massively-parallel ensemble, for the reasons presented here. We feel that it is important for the computing research community to overcome the "mental block" against massive parallelism imposed by a misuse of Amdahl's speedup formula; speedup should be measured by scaling the problem to the number of processors, not fixing problem size. We expect to extend our success to a broader range of applications and even larger values for N.

    2. Re:Last time I run a parallel program... by Burnhard · · Score: 1

      One of the criticisms of Amdahl's Law is that it makes pessimistic assumptions about the amount of program code that must be serial. These assumptions are wholly dependent on the problem domain under consideration of course. To use Google as a case in point, the amount of serial code is closer to 0% and so Amdahl's Law doesn't really apply here. So, to state the obvious, this kind of processing works well if the problem to be solved is naturally parallel in nature (each element can be effectively processed independently).

    3. Re:Last time I run a parallel program... by jvonk · · Score: 1

      Gustafson's Law giveth, while Amdahl's Law taketh away.

      Interesting...

    4. Re:Last time I run a parallel program... by ctrl-alt-canc · · Score: 1

      I didn't link that document by chance...

      In our industrial field we daily compute several finite-difference simulations on a medium level scale of resolution, and each CPU shares with the others a piece of the simulation playground. The bottleneck is in the inter-cpu communications: whenever we graph the performance of our codes, we always see Amdalh's law say "hi!" to us.

      Of course application examples exist where parallelism is predominant, and in this case the second part of the document I linked is verified, but unfortunately we do not have this kind of problems to solve in our daily business.

    5. Re:Last time I run a parallel program... by Anonymous Coward · · Score: 0

      I wonder whether you are falsely attributing "serialization" to most of these communication costs. What Amdahl's Law should tell you is not that all hope is lost, but that you need to consider the real fractional costs of your application and optimize all the parts. If you've parallelized certain calculations so they no longer dominate the wall-clock costs, it is time to consider the communications. They have a wall-clock cost, and they can be optimized through some combination of more clever block decompositions or better (more parallel, higher speed) interconnect hardware.

      All Amdahl's Law really says about parallel systems architecture is that you need a balance of computing and I/O capabilities such that neither becomes the dominant hot-spot for your applications. The only thing that is truly "serialized" in a parallel app is the global sequence of synchronization points, e.g. the barrier calls in a SPMD code. The communications and calculations in between these synchronization points all have the potential to be better parallelized, given the right economic incentives and hardware capabilities.

  19. Transputer, The Next Generation by Animats · · Score: 2, Insightful

    This is very similar to the Inmos Transputer, a mid-1980s system. It's the same idea: many processors, no shared memory, message passing over fast serial links. The Transputer suffered from a slow development cycle; by the time it shipped, each new part was behind mainstream CPUs.

    This new thing has more potential, though. There's enough memory per CPU to get something done. Each Cell processor, with only 256K per CPU, didn't have enough memory to do much on its own. 20 CPUs sharing 1GB gives 50MB per CPU, which has more promise. Each machine is big enough that this can be viewed as a cluster, something that's reasonably well understood. Cell CPUs are too tiny for that; they tend to be used as DSPs processing streaming data.

    As usual, the problem will be to figure out how to program it. The original article talks about "neurons" too much. That hasn't historically been a really useful concept in computing.

    1. Re:Transputer, The Next Generation by Anonymous Coward · · Score: 0

      With effective computer languages and compiler tools this should not be an issue.

      Memory per CPU is a bad way to think of it thats quite ill defined, e.g. a modern CPU has a few MB of L2 cache, working out at around 256-512k per core, on some architectures there's now L3 cache before you get to the relatively slow DRAM. Look at architectures like Picochip or Imagine, which are embedded architectures designed for Signal processing, one is a 2D grid array or processors and the other is a SIMD cluster of VLIW processors.

    2. Re:Transputer, The Next Generation by 0123456 · · Score: 1

      The Transputer suffered from a slow development cycle; by the time it shipped, each new part was behind mainstream CPUs.

      Not really: when I was programming transputers they were running at 20-30MHz with integral floating point acceleration while the 'terminal' used to program them was a 12MHz 286. The T9000 was the development cycle disaster, prior to that they were doing pretty well in competition with mainstream CPUs.

      What I think really killed them was Inmos, who didn't really seem to want to sell any. The only way the average Joe could program a Transputer was to spend thousands of pounds on a development kit, so they basically got consigned to the embedded market with little chance of going anywhere in mainstream computing (the Atari Transputer Workstation, for example, was canned after a few hundred sales).

      20 CPUs sharing 1GB gives 50MB per CPU, which has more promise.

      If I remember correctly the T800 had 6 or 12k of on-chip RAM, so compared to typical memory sizes of the era that's about the same (about 1% of 1MB vs around 1% of 4GB).

    3. Re:Transputer, The Next Generation by jd · · Score: 1

      Inmos had problems, I'm sure, but what really finished them off was that Inmos was owned by Thorn EMI. Domestic electronics and music cheapos. What the - were they going to do with a supercomputer grid?

      --
      It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    4. Re:Transputer, The Next Generation by LWATCDR · · Score: 1

      Well on a modern system I guess you could treat the cache memory of the CPUs as RAM and then map each of the others CPUs to the address bus but just think with a 64 bit address buss you could have 32 bits of CPUs each with 4GBs of local ram.

      If each was a single core CPU and cost 20 dollars it would only cost as much as an aircraft carrier for the CPUs.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  20. Dangerous idea by Anonymous Coward · · Score: 1, Interesting

    To make any computer mimic the design and function of the human brain would invite evolution and sentience. We want tools, not sentient machines.

    1. Re:Dangerous idea by ProfessionalCookie · · Score: 4, Insightful

      From a science perspective I'm pretty sure that either computer are already "sentient" or (IMHO, more likely) that we don't really understand what sentience is. At all.

    2. Re:Dangerous idea by Hognoxious · · Score: 1

      Butlerian Juhad here we come!

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:Dangerous idea by perryizgr8 · · Score: 2, Interesting

      on the contrary, i can't wait for sentient machines. at last we will be free of shoddy human programming. no vendor lockins and other such stuff. just tell your computer to write a specific program you desire for a specific purpose, and he will write it for you.

      --
      Wealth is the gift that keeps on giving.
    4. Re:Dangerous idea by mydirtynuts · · Score: 1

      I want a sentient tool. That way you know you are being digitally enslaved. Sentient systems are bad at keeping secrets.

  21. The Brain. by headhot · · Score: 1

    Well, when you start thinking about 10^6 or more cores, is pretty obvious that they cannot all be connected to each other and cannot all share memory. At that point your in the realm of neural networking, and are looking at many many serial (and parallel) tasks running in parallel.

    When you look at the brain, it has evolved so that different areas have different purposes and techniques for processing data. There are some very highly specialized systems in there for very specific problems.

  22. Steve Furber by Alioth · · Score: 1

    I saw Steve Furber talk at Retro Reunited in Huddersfield last year (where he spoke about the past - Acorn, the development of the ARM, the present, and the future in terms of what they were doing with SpiNNaker. Very interesting talk. (I also saw Sophie Wilson, another one of the original ARM developers at Bletchley park a couple of weekends ago, another fascinating talk. She now works for Broadcom designing processors for telecommunications).

  23. Yep, its not like computers by Anonymous Coward · · Score: 2, Interesting

    The brain isn't like computers at all. The brain is compartmentalized. There are dozens of separate pieces each with its specialty. Its wired to other pieces in specific ways. There is no "Total Information Awareness"(tm) bullshit going on (what 1 million cores would give you). The problem with TIA is that there is too much crap to wade through. Too big a haystack to find the needle you need. What they found when analyzing Berger-Liaw speech recognition systems against other systems is that the Berger-Liaw system kept temporal (time-based) subtleties, in contrast to other speech recognition systems that were simply digital (with the clock/oscillator sampling in a Nyquist format, destroying or failing to capture temporal information). The Berger-Liaw system can best the best human listeners (which is why the US navy got it instead of it becoming an available commercial product). It could act as a 'sonic input device' using only a tiny neural network (20 to 30 nodes) for superhuman input, instead of the digital ones, giving crappy results with 2048 or 4096 nodes. The brain is wired with a lot of 'specialty components' which use a spare number of components to get the job done. Some of the excess appears to be redundant (although I am not a neural-scientist and could be wrong).

  24. .... ends up looking pretty silly by Chrisq · · Score: 1

    But anyone who argues the brain isn't a pretty spiffy processing system ends up looking pretty silly.

    Wouldn't they have just proved the point then. In their case at least......which would mean that they weren't silly after all ..... so their comment would be silly .... which would prove their point.... [stack overflow]

  25. Obviously... by muckracer · · Score: 1

    > What do we do when we have computers with 1 million cores? What about a billion? How about 100 billion? ...run really awesome screensavers!

    1. Re:Obviously... by muckracer · · Score: 1

      > What do we do when we have computers with 1 million cores? What about a billion? How about 100 billion?

      Run really awesome screensavers!

  26. Where to start? software by CBravo · · Score: 2, Interesting

    My opinion is that you should not require software to be parallelized from the start. You parallelize it during runtime or at compile time.

    This makes sense because parallelization does not add anything in functionality (the outcome should not change). My point is: program functionality and configure/compile parallelization afterwards (possibly by power-users). There could be a unique selling point for open source: parallel performance because you can recompile.

    --
    nosig today
    1. Re:Where to start? software by dargaud · · Score: 1

      My opinion is that you should not require software to be parallelized from the start. You parallelize it during runtime or at compile time.

      It certainly is the easiest for the lazy programmer, but certainly not the best way. Using a language that's inherently parallel like Erlang is certainly (one of) the best ways: you don't need to fight with mutexes, semaphores, p-loops as the semantics of the language takes care of it for you. Neat but you need to rethink many processes.

      --
      Non-Linux Penguins ?
    2. Re:Where to start? software by CBravo · · Score: 1

      Rewriting all software in the world using Erlang will not happen. It is not about a rewrite of the world imho, it is about the possible path, starting where we are now, to a new situation.

      --
      nosig today
    3. Re:Where to start? software by selven · · Score: 1

      So the compiler is supposed to guess which parts of the program can be parallelized and which can't be? What if a programmer, not thinking about parallelization at all, accidentally makes his entire program impossible to break up (eg. by using the same variable for loops throughout the entire code)? To do this, the compiler would have to understand the program's intent, and I think we'll get to 1 million processors long before we get that kind of AI.

    4. Re:Where to start? software by Anonymous Coward · · Score: 1, Interesting

      It certainly is the easiest for the lazy programmer, but certainly not the best way.

      Lazy programmer is fantastically negative. Remember the software industry has a massive amount of legacy sequential code and a massive number of people who are skilled here, rewriting all this is another language is difficult. Not necessarily lazy, not correctly skilled.

      It will take years for training to catch up, especially with languages introducing their own specific set of parallel implementation, e.g. Java threads are awful, it will take Universities and Colleges years to figure out teaching Java Threading is a bad idea as general parallel concepts are not introduced.

      The smart person should be looking into language and compiler tool design, since a lot of people will be needing better tools and compilers. The solution is not attempting to force everyone to work the new way overnight, that MIGHT come with time. Unfortunately programmers are stubborn and will stick religiously to their old ways.

      I predict computing platforms becoming massively more diverse, I think we will be shifting towards numerous computing platforms, something the Linux community might be able to do well, the underlying architectures have to change, x86 has to die soon and with the right technology it is a case of letting tools crunch away at implementing this new parallel algorithm.

    5. Re:Where to start? software by CBravo · · Score: 1

      I am aware of the problems of automatic parallelization with current methods (and I did not state 'automatic'). If there was a simple/simplistic solution I would like to post it here (but I don't know one).

      Your statements have so many assumptions (and not all are true) that you make it hard for yourself to find a solution. Imho one has to think simple to find solutions to hard problems.

      --
      nosig today
    6. Re:Where to start? software by GPSguy · · Score: 1

      Got any spare tools to automagically parallelize that serial weather physics code?

      --
      Never ascribe to malice that which can adequately be explained by tenure.
    7. Re:Where to start? software by Anonymous Coward · · Score: 0

      Actually, I would say it is the exact opposite from what you are claiming.

      Many programming language serialize everything, even those things that are inherently parallel.

      For example, If I wish to add all numbers inside an array, I enumerate those elements and process each element in turn using a for loop.

      It is then up to the compiler to figure out that the order which is implied in the programming is infact meaningless, and the job could be parallelized. Depending on the language used, this can be hard to impossible. When debugging the code is necessary, we have the additional problem that the you would not be able to step through the optimized version of your program, because the iterations of the loop no longer exist.
      If on the other hand, I could simply express that I would like to add up all numbers, as a single step, the compiler is free to arrange the computation as it sees fit.

      In general, I believe that serializing tasks is usually simpler than parallelizing them.

    8. Re:Where to start? software by Radtoo · · Score: 1

      Compiling that can only work only to a small degree with existing languages, so far. The problem with these is that you very, very often ask things to be done that can't be done in parallel. And any program section where only one out of a million cores is working is REAL poison to your program's overall performance.

      So, we will need libraries or programming languages (the latter may be preferrable) that simply don't allow for non-parallel programming - unless the programmer programatically states he REALLY, REALLY can't avoid it and is encouraged to keep these sections as small and as much separed from the rest of the program as possible.

      And if you then go into parallel processing in the sense of a comparatively slowly interconnected cluster, you additionally need ways to chop up data, estimates which processors are best suited for a task and ways to measure that up to the cost of passing data somewhere, and much much more. Some of these problems may also need to be reflected in constraints applied to programming libraries and languages, again.

      There will probably be quite a few generations of hardware and software "tooling" to be done until we have anything that really feels both convenient/easy to work with and does not require much thinking to be made run efficiently in such a massively parallel setting.

    9. Re:Where to start? software by CBravo · · Score: 1

      In a 'new' situation I agree with your statements. The problem is the old repository of code.

      --
      nosig today
    10. Re:Where to start? software by CBravo · · Score: 1

      That is an interesting idea: non-serializable languages.

      --
      nosig today
  27. The Internet by pmontra · · Score: 5, Interesting

    The Internet is at least in the 1 billion cores range. The way to use many of them for a parallel computation has been demonstrated by Seti@home, Folding@home and even by botnets. They might not be the most efficient implementations when you have full control of the cores but they show the way to go when the availability of the cores and the communication between them is unreliable, when they have different times and different clocks and when they might be preempted to do different tasks.

    1. Re:The Internet by Anonymous Coward · · Score: 0

      I keep forgetting about it, but there's a Stanford XGrid project that my little Mac Mini has been part of since I bought the thing.

      Frankly, I have no clue what the little guy does in its spare time. Folding proteins? Statistical modeling of nuclear weapon detonations? SETI? No clue.

      If you want to see some real processing power, have Microsoft include something like XGrid in Windows 8, turned on by default. :) ...not that they'd do that.

    2. Re:The Internet by Anonymous Coward · · Score: 0

      Then where would all the botnets get their processing power? ;)

  28. Bye bye Von-neuman by kikito · · Score: 1

    With 100+ cores we should start considering leaving Von-neuman behind.

    Separated memory/processing/instructions/registers would stop making sense. We would have to follow another model. I don't know which.

    1. Re:Bye bye Von-neuman by TheTurtlesMoves · · Score: 1

      This is the way for a lot of micro controllers and DSPs. Its not all it crack up to be. Pros and cons and all that.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    2. Re:Bye bye Von-neuman by Skapare · · Score: 1

      OK, so, does that mean I should include RAM in an SoC or not?

      --
      now we need to go OSS in diesel cars
  29. patent-bustering "bad" processors by colordev · · Score: 1

    For possible future patent trolls and to the all reading professional... remember reading the following as "prior art". (kind of like marking bad HDD sectors but instead marking bad processors broken)

    TITLE: System, method and device for reliable computing applications

    CLAIM 1: Computer device, system and failure eliminating method for computer devices k n o w n for the computer systems ability to evaluate each processor's ability to operate without significant errors and if such errors would be detected the system could be capable for marking such processor units broken and thereby eliminate the future use of such broken processor units withing the computer system.

  30. Special Comment by Xanavi · · Score: 1

    All the human activity thus far, has failed to even begin to match the human brain made by "random chance", if you believe in that malarkey!

  31. The brain isn't a spiffy processing system. by master_p · · Score: 4, Insightful

    The brain does not do arithmetic, it only does pattern matching. That's what most people don't get and that's the obstacle to understanding and realizing AI.

    If you ask how can humans can then do math in their brain, the answer is simple: they can't, but a pattern matching system can be trained to do math by learning all the relevant patterns.

    If you further ask how humans can do logical inference in their brain, the answer is again simple: they can't, and that's the reason people believe in illogical things. Their answers are the result of pattern matching, just like Google returning the wrong results.

    1. Re:The brain isn't a spiffy processing system. by Anonymous Coward · · Score: 0

      "The brain does not do arithmetic, it only does pattern matching"

      Except you are incorrect, math and pattern matching = the same thing.

    2. Re:The brain isn't a spiffy processing system. by perryizgr8 · · Score: 0

      ok, then how can you catch a ball i throw at you? unless your brain is parallely solving quadratic equations, alongwith estimating the result continuously (in parallel to the main calculation), theres no way any human can catch the ball.

      --
      Wealth is the gift that keeps on giving.
    3. Re:The brain isn't a spiffy processing system. by Ihlosi · · Score: 1
      The brain does not do arithmetic, it only does pattern matching.

      Down at the neuron level, the brain does arithmetics on pulse frequency modulated signals.

    4. Re:The brain isn't a spiffy processing system. by oranGoo · · Score: 0

      Down at the neuron level, the brain does arithmetics on pulse frequency modulated signals.

      Arithmetic is nothing - my brain does chemistry at molecular level!

    5. Re:The brain isn't a spiffy processing system. by master_p · · Score: 1

      No, the brain simply applies pattern matching in order to find the best reaction for current event.

      If a ball is thrown at me, the brain will search for an appropriate reaction, which is most of the time the action of raising the hand and catching the ball.

      If a dirty ball is thrown at me, my brain will react by trying to avoid the ball.

      If a bullet is fired at me, my brain will not react because it would not have the time to do so.

      It's all pattern matching.

    6. Re:The brain isn't a spiffy processing system. by phantomfive · · Score: 1

      You have to be careful whenever you say the brain can 'only do' a certain thing, especially when what the brain actually does is so poorly understood. The brain can act as a turing machine (though of course with limited memory), remember, so technically it can do anything a computer can do.

      While in theory, you may be able to describe a human brain in terms of pattern matching, it is really probably a simplification of what the brain really does. The brain is capable of recognizing patterns it has never seen before, which was part of the point of Jabberwocky, and was further demonstrated by Chomsky. You may not know what a Jabberwocky is, but from the poem you can infer that it is some kind of dangerous animal worth hunting. Oh, see? We can do deduction, too.

      In my experience people believe illogical things not because they are bad at deduction, but because they have a bad axiom somewhere in there: they thought something was true that really wasn't. If you dig down to the bottom of why they believe something, and find their incorrect belief, you can usually fix it (although pride may give them problems at that moment).

      --
      Qxe4
    7. Re:The brain isn't a spiffy processing system. by perryizgr8 · · Score: 1

      If a ball is thrown at me, the brain will search for an appropriate reaction, which is most of the time the action of raising the hand and catching the ball.

      how does the brain know how many steps to take? in what direction? at what height to keep the hand? rotated at what angle?how much to move the hand backward to lessen the impact?
      does the brain just do a search in a huge all encompassing database. storing all sorts of cases in a database would require terabytes of memory, it seems to me. the solution is not as simple as 'action of raising the hand and catching the ball'. its different every time. different according to wind direction. different according to hardness of the ball. etc etc.

      If a dirty ball is thrown at me, my brain will react by trying to avoid the ball.

      this is called logical reasoning. its something computers inherently do. the brain is a complex computer. it does this without apparent effort.

      It's all pattern matching.

      and how can you match patterns without computation?

      --
      Wealth is the gift that keeps on giving.
    8. Re:The brain isn't a spiffy processing system. by Anonymous Coward · · Score: 0

      BWAHAHAHAHA

    9. Re:The brain isn't a spiffy processing system. by perryizgr8 · · Score: 1

      same to you.

      --
      Wealth is the gift that keeps on giving.
  32. What's wrong with the coherent memory model ? by Arlet · · Score: 1

    The current model of coherent memory/identical time/everything can route to everywhere just can't scale to machines of this size

    Why not ? Obviously, you can't have a million processors accessing the same variable in memory, but with a layered system of caches, you could keep most processors working in their own local copy. As soon as a processor writes to memory that's also used by another process, extra hardware will keep the memory coherent. This architecture is basically a superset of a message passing architecture (memory coherency signals are equivalent to messages), but much simpler for the CPU. Because the CPU isn't aware of the messages, this allows the coherency hardware to be improved without changing the program in any way.

  33. Erlang by ocularsinister · · Score: 1

    Erlang is probably a good start.

  34. If our brains have 100 billion processing elements by Ihlosi · · Score: 1
    ... then our processors also have millions already.

    A neuron is a fairly simple processing element, after all. Complexity comes from the sheer number of connections with other neurons that a single neuron can have.

  35. Obligatory by Hognoxious · · Score: 1

    In Soviet Russia, a Beowulf cluster of these imagines YOU!!!!!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  36. Not a brain by Yvanhoe · · Score: 1

    Our brains have billions of neurons, not billions of cores. These are completely different beasts when it comes to architecture.

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
  37. The Human Brain by dave420 · · Score: 1

    The Human brain is rather spiffy, but it's far from perfect. It has fantastic performance, but it can frequently screw up massively. I don't think mankind would be too pleased if their most powerful computers got depressed (like Marvin) - we'd probably expect to be able to use them, and to trust their output. If they work like the human brain, we can't always do both.

  38. SoC by Skapare · · Score: 1

    When are they going to get to a point where all of the RAM is on the same die with the processor core(s) that need access to that RAM? By shortening the path to the RAM from going off-chip to staying on-chip, the opportunity for increased speed and lower power consumption arises. And this can also be constructed more compactly, allowing more such complete processors within the same space. Then with more processors, at some point we no longer even need virtual memory for at least the bulk of the processors (the ones doing the heavy computational parts). By removing the virtual memory mapping hardware, things can get smaller and use even less power, giving even more computational capability.

    Hopefully, if we keep this up, we'll end up with 2^256 processor cores inside a singularity and have the ability, given enough time, to simulate a complete universe.

    --
    now we need to go OSS in diesel cars
  39. What about the E programming language? by elucido · · Score: 1

    Why wouldnt E scale up to a billion cores?

    1. Re:What about the E programming language? by Anonymous Coward · · Score: 0

      How is this related to the parent post?

  40. E programming language by elucido · · Score: 1

    As far as I know the E programming language is designed for this problem.

  41. Google to the rescue? by hesaigo999ca · · Score: 1

    I heard a funny rumor that google had like millions of pcs set up as servers all clustered together to share the load of doing a search on their own custom built file system. Is that not good enough for you, or the fact it does not come in a box with a nice little logo
    with all sorts of imminent malware and trojan dangers and sell for more then it should make it a viable option???

  42. Fuck you lazy editors by drinkypoo · · Score: 1

    Related stories
    Intel Says to Prepare For "Thousands of Cores"

    There, hope that helps.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  43. Why would you need so many cores? by Anonymous Coward · · Score: 0

    65536 processes ought to be enough for anybody.

  44. Re:If our brains have 100 billion processing eleme by mario_grgic · · Score: 1

    Actually, the single neuron is not simple. It's extremely complex, as complex as a CPU or more. Our neural models usually over simplify each neuron and assign it some basic function but that is far from reality. Every cell in our body is more complex than we have the ability today to model with even the most powerful computers. Even more strongly, we can not even model single large chain protein (protein folding models are one of the hardest things tackled in computational biology), let alone entire cell, and let's not even speak of something as complex as organs or things like the brain.

    --
    As the island of our knowledge grows, so does the shore of our ignorance.
  45. Re: "steal" by TaoPhoenix · · Score: 3, Funny

    No no - you had the golden chance and missed it!

    You *license* the baby!

    --
    My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
  46. Silly Brain by Anonymous Coward · · Score: 1, Informative

    anyone who argues the brain isn't a pretty spiffy processing system ends up looking pretty silly

    Yet the brain fails miserably at incredibly easy calculations. Most applications require failure-tolerant, repeatable, and highly reliable results, none of which the brain is really good at. The brain might not be the best model for massive parallel processing. Sure we can learn from it but perhaps we can also do better. Even in AI research it is questionable whether a connectionist modeling of the brain is the really the right approach. As anyone with halfway demanding job knows, the brain is a fairly imperfect result of non-purposeful and undirected evolutionary processes and it is easy to experience its limits in your daily work. (If not, you should perhaps get an intellectually more challenging job.) Even for the purpose of building AI we might be able to come up with something better or something else entirely than mimicking the brain.

    1. Re:Silly Brain by Tyler+Durden · · Score: 1

      As anyone with halfway demanding job knows, the brain is a fairly imperfect result of non-purposeful and undirected evolutionary processes and it is easy to experience its limits in your daily work. (If not, you should perhaps get an intellectually more challenging job.)

      Yeah, I'm thinking you have that completely backwards. The tasks that computers are best at wouldn't be something you'd describe as "intellectually challenging" but more like tedious, dull and unforgiving. Stuff like memorization and rapid and accurate calculations of known mathematical formula. Memorization is great if you're a waiter or waitress taking a lot of orders. (Not that I'm looking down at the profession, but it's something a lot of us wouldn't want to go through for long). You ever need to use a slide-rule? Thanks to computers, I never had to. Got some dull calculations to be solved to achieve something interesting? Well give it to a computer and focus on something better.

      The really intellectually challenging jobs take insight and creativity - the things that our computers tend to suck at. Finding the proof to a long-standing math problem. (Or even creating a new branch of mathematics if you're really amazing). Coming up with an innovative algorithm. Looking at the properties of known subatomic particles known and uniting them all by creating the Standard Model. Now that right there is the pinnacle of intellectually challenging. You think a computer we create is going to achieve that anytime soon? (Or maybe ever). Not bloody likely. But they are great at taking care of stupid, soul-crushing grunt work you have to do to work up to achieving such things yourself, leaving your mind more time to think of the fun stuff.

      Besides, I trust the evolutionary non-purposeful and undirected process for creating a brain more over the long term than us anyhow. Whereas we are limited by the models and concepts we are able to come up with to understand the world around us and create something, nature simply acts and is unrestrained by any concept or need for understanding whatsoever. What could possibly be more powerful than that?

      --
      Happy people make bad consumers.
  47. Occam - a language perfectly suited for this... by TooTechy · · Score: 1

    We just wait for the hardware to catch up. http://en.wikipedia.org/wiki/Occam_(programming_language)

  48. Unrolling programs ... into a bitgrid by ka9dgx · · Score: 1

    A programming trick that used to work was to unroll loops, to prevent the pipeline penalties that occur when you branch. It worked well for a while. My idea (the bitgrid) is based on the idea of unrolling the whole friggin program. Instead of making a list with less branches... why not distribute each and every instruction of a program out into a physical processing instance?

    To make it feasible in hardware, use the simplest computing grid feasible, a grid cells (each cell having 4 inputs (one bit from each neighbor), 4 outputs (one bit TO each neighbor) and a 16 entry look up table), each of which is a pitiful unit of computation by itself.... in a grid size to fit the application at hand, they can execute all of the instructions necessary to compute a result simultaneously.

    Communication isn't shared, because every input and output only has 1 place to go or come from. It only has to go to the next cell... so there are no long communication lines to worry about. Each cell can function as a router and logic element at the same time.

    Programming with Fortran or C or anything else you've heard of is RIGHT OUT. This is the big problem to solve.

    It is this concept which I believe will get me some funding from the Exoscale research programs at DARPA.

    It was surreal signing up to be a defense contractor last week.

  49. that's not parallel by pigwiggle · · Score: 1

    I don't know about seti, but I saw a presentation a few years back by a guy who was in with the folding at home folks. Each computer has a task that is independent of the current results of all others. Just a large bundle of serial jobs. This is something I am familiar with. A lot of the large clusters have queuing policies that favor jobs with large proc counts. Sometimes I need to run several small jobs. I bundle them up to look like one big n-proc job, and presto.

    --
    46 & 2
    1. Re:that's not parallel by pablodiazgutierrez · · Score: 1

      That type of job is called "embarrassingly parallel", which is parallel indeed.

    2. Re:that's not parallel by pigwiggle · · Score: 1

      So the job is "parallel" - still not on board, though - but the internet is not a parallel computer (at least one that scales in any meaningful way).

      --
      46 & 2
  50. Just hink of all of the possibilities for... by Anonymous Coward · · Score: 0

    PORN

  51. There IS a Relevant Architecture by Anonymous Coward · · Score: 0

    There is a relevant computing model for billions of processors: Single Instruction Multiple Data. I have always thought that this would be just what is needed for ray-trace image generation. You could assign one processor per pixel.

  52. Neural networks people by Anonymous Coward · · Score: 0

    We are already building hardware implementations of neural networks (CBF with the reference). These things are (or soon will be), for all practical purposes, logically the same as a human brain. If we get to the point where we can build billion core cpu's, then we'll have no trouble building a hardware implementation of a neural network to rival the human brain. Forget Von-neuman.

    When we have machines that think and feel like a human, we as a society will seriously have to rethink our perception of humanity and our place in the universe. I think the world is heading in a strange new direction that no one will see coming.

  53. Re:If our brains have 100 billion processing eleme by mydirtynuts · · Score: 1

    there are approximately 50-100 trillion synapses estimated in the average human adult brain. Let me know when you get there if you can code sentience for the platform without knowing either the protocol, of the network, let alone the syntax and semantics of qualia, thx...