Student Discovers O(log log N) Prime Factorization Algorithm | MIT Student Found Dead | Intel Delivers 128 Core Processor | Protein Folding Fully Modeled | Human Brain Functionally Described | Half of World's Population Found on the Net | Wireless Cortical Device | Computational Model of White Blood Cell Complete | Games Jack In | Immortal! Gene Therapy Makes Wealthy, Healthy Immortal | Computational Model of Human Body Complete | New US Childbirth Policy Follows EU SLASHDOT (December 6, 2014) - Thanks in part to the Folding @ Home project, researchers announced today that the long-outstanding problem of modeling the way proteins fold has been solved. .. (more) Human Brain Functionally Described SLASHDOT (April 19, 2015) -Scientists today unveiled a functional model of a human brain running on one of the world's most powerful supercomputers .. (more) Half of World's Population Found on the Net Wireless Cortical Device Demonstrated MSN (August 12, 2017) - The Cortico device announced this week provides a complete-sensory brain interface to its recipient. Cortical Labs also introduced the surgical equipment necessary to implant the interface. Cortical states that the equipment is self-sufficient and requires no human surgeon to oversee the procedure. .. (more) Computational Model of White Blood Cell Complete JOURNAL OF COMPUTATIONAL BIOLOGY (July 12, 2019) - ".. this is a monumental day for computational pharmacology .." (more) Games Jack In TIME (June 23, 2020) - A new generation of games are set to hook directly into several leading cortical interfaces for an experience that's "far more reality than virtual," .. (more) Immortal! Gene Therapy Makes Wealthy, Healthy Immortal USA TODAY (May 23, 2026) Front Page - It is a move that critics compare to the rich trampling the poor in a rush to leave the Titanic. Yesterday, the FDA approved gene therapy for rendering those (very few) who can afford it - and are in good health - biologically immortal. The subject of intense controversy since deemed technically possible only seven years ago, it has only now .. (more) Computational Model of Human Body Complete JOURNAL OF COMPUTATIONAL BIOLOGY (October 3, 2029) - ".. we've obtained the Holy Grail of computational pharmacology .." (more) New US Childbirth Policy Follows EU USA TODAY (February 8, 2040) - Following in the footsteps of the EU, the United States today introduced a childbirth policy that requires government permission to bear a child .. (more) .. and this list is subject to change without notice. ;)
Just so you know, the below stories are fictional..
Student Discovers O(log log N) Prime Factorization Algorithm
COMPUTER SCIENCE NEWS (March 19, 2009) - Brad Halloway, an MIT graduate student, claims to have discovered a prime factorization algorithm that has a guaranteed complexity of O(log log N) where N is the number to be factored (or O(log N) where N is the number of digits in the number to be factored). Researchers are eager to see the algorithm, which Halloway will present in person in November. A number of researchers have provided him with several million-digit numbers, all of which are products of two very large prime numbers. Halloway claims that he was able to factor each of the numbers in about one week. The researchers verified that the factorizations were correct. "If this is true, there will be earth-shattering consequences for computer security .. (more)
MIT Student Found Dead
NBC (March 22, 2009) - An MIT student, Brad Halloway, was found dead in his apartment today, victim of an apparent robbery. The perpetrators carried off a computer and a video game console. This is the latest in a recent string of so-called "Video-Game Burglaries" around the campus. "This is the first where someone has died - he must have surprised the perpetrator," said Capt. .. (more)
Intel Delivers 128 Core Processor
PRESS RELEASE (November 6, 2013) - Today Intel Corporation ships the first of its 3.2GHz 128-core processors manufactured with a new 16 nanometer process pioneered .. (more)
Protein Folding Fully Modeled
CNN (January 1, 2016) - It is now possible to find more than fifty-percent of the world's population on the internet. .. (more)
Wednesday, March 19, 2008
Future Headlines
Monday, March 10, 2008
Technology Is Disappearing
When I was a kid I knew what the future would be. It had the clinical austerity of 2001: A Space Odyssey, the cold silver cities of Logan's Run and the dark, bleak dirtiness of Blade Runner and Alien. That future was inevitable. More optimistically the colorful, gaudy, in-your-face future of Back to the Future II came along with a number of films of the late 80's. Everything in the future was going to be complex. Every surface would have a thousand buttons.
The 90's began a different trend in science-fiction. In one episode of Star Trek: The Next Generation, Picard returned to a modest country home in France that could have come from the 1950's - or the 1850's. Gattaca and Minority Report contrasted simply and starkly adorned futures with warm, familiar early 20th century fashion and interior decor.
The later examples are a truer glimpse of the future. Nobody wants to live in a world that's metallic, austere, cold, dirty or gaudy. Developers of technology in our world strive for naturalness, unobtrusiveness and basic elegance in design. The less visible, the better.
Consider the ubiquitous computer. It's so pervasive that even talking about 'computers' seems anachronistic. In the 80's people would say about an IT professional, "he works with computers." Now they say, "he's a game developer," "he's a graphics programmer," "he's a web designer," or "he works in information technology." And everyone knows what those things mean. Back in the 60's and 70's, computers were novelties, understood by few. A computer was a sure sign of the future. Today, we spend lives sitting in front of them. We know them for what they are - tools of immense and perpetually untapped power that also happen to be phenomenal pains in the ass. What is the future we hope for now? It's a future where we can reap the benefits of machines and be free of the frustrations they cause us. So a computer doesn't look like the future anymore, it looks like the frustrating present. And, if you draw too much attention to it, it starts to look like the past.
What does this mean? Technology must disappear. No, it will not go away, but it will become invisible. Take the beautiful iPhone. All those complicated little buttons you find on a smart phone? They just went away. It could only be better if it wasn't there at all, while still doing all the iPhone allows. Research proceeds rapidly in flexible electronics, stretchable electronics, wearable computers, transparent electronics, nanotechnology and most significantly, brain-machine interface, so this may come sooner than we think.
Wednesday, March 05, 2008
PlayStation 3 Cell Came Before Its Time
For now, however, I'd like to look at the Cell. In doing so, I'd like to ask and try to answer the question, "Why has the quality of PlayStation 3 titles lagged behind that of the Xbox 360 titles?"
The Cell Processor is Amazing
From the info I gathered, the PS3's Cell should have a peak numerical performance of about 205 gigaflops. From Wikipedia, I gather that the 360, on the other hand, has peak performance of 116 gigaflops. The PS3's Cell has one regular PowerPC core (with two hardware threads) called the PPU. It also has seven SPUs (one is reserved for the OS), which are streamlined vector processors that are fast as hell, although functionally limited compared to the main PowerPC core. They have their own memory at 256K apiece. Half of that is available to the developer. The 360's Xenon processor, on the other hand, consists of three conventional PowerPC cores almost identical to the Cell's PowerPC core, for a total of six hardware threads. So, if you're like most people, you're probably thinking, "Wow, the PS3 blows the 360 away!"
Except that it doesn't.
Developing Games is Hard
I just read this at .mischief.mayhem.soap about the size of the Assassin's Creed team. Actually, I think that's about the same for Madden NFL. Modern games require an enormous amount of content, some of which must be reflected in code. Games on multicore consoles are much more difficult to debug. Making games is simply much more expensive that it used to be. I heard a colleague remark that he saw that one PlayStation 1 version of Madden had 30 files. Now, it's thousands of files, millions of lines and scores of developers.Developing for the Cell is Hard
When we first saw the specs for the Cell, I thought, "it looks like it was designed to play movies." And in playing movies, the PS3 will blow the 360 away. The Cell was designed for performing the same kind of vector calculation on large numbers of small chunks of data. Essentially like a GPU, but more flexible although less parallel. There's a lot of this sort of thing in games. Some physics, audio decoding/encoding, movie decoding/encoding, some graphics/geometry processing. Still, there are a lot of things that aren't well suited for this model. Among those would be language interpretation (we do a lot), gameplay code, sparse data manipulation, and a lot of really mundane and common software engineering things that are inherently sequential. Sorting a list of pointers that must be dereferenced to be compared, for example.
Explanations of why the 360 performs so well compared to the PS3 usually start out like, "Well, the Cell looks better on paper, but.." Developing for a 360 is like developing for a multicore PC. Take your existing code, multithread it and know that it'll work on the 360 and upcoming PC-like multicore machines with little changes.
You can build PS3 software exactly the same way using only the PPU and its two threads, but that will yield almost exactly one-third of the power of the 360's processor. In fact some early titles that were developed first for the 360 did just this. This was not as bad as it sounds though. A lot of early code for these machines was not thoroughly multithreaded because much of that code was directly ported from older Xbox and PS2 code. In these cases, it used just a portion of the 360's power anyway.
Now we're pushing the capabilities of the 360 and trying hard to get the PS3's six fast but special-purpose SPUs to do what we can do with the four remaining general-purpose hardware threads on the 360. It's hard, though certainly possible to achieve parity. Still, it requires a lot more code and expertise just for the PS3 (usually from our best developers), which typically means much less overall developer productivity.
The Cell Looks Like the Future
Unfortunately, as delightful as it is to develop for, the approach taken with the 360's Xenon processor simply can't scale. At some point, with some number of traditional cores, memory access and synchronization are going to break down or become so contentious that any benefit of a larger number of cores will be nil. So the Cell looks like the future. A small number of traditional cores with a large number of stream processors can yield phenomenal performance in the right proportions. I predict that some member(s) of the next console generation will have a processor with 8 traditional cores and perhaps 256+ stream processors. 256 sound ridiculous? Consider that an ATI HD 2900 XT GPU has 320 stream processors.
Why do I think the Cell was premature? It did not fulfill the possibilities of traditional multicore processor before moving on to a hard-to-develop-for, though potentially more powerful, architecture.
In any event, it's clearly a foreshadow of processor architecture to come. Still, the difficulty of achieving parity between the Cell and 360 Xenon when game development is already at its most taxing really isn't doing the PlayStation 3 any favors.
Tuesday, March 04, 2008
Simple Templater in C++
Like I mentioned before, I'm posting some of my personal code library that I've accumulated over the years. If you modify or improve this, send the changes back please.
Recursive template engine with escaping and lazy evaluation. Note that it is case SENSITIVE.
Use
1. Add items to Templater's map.
templater.map()["bob"] = "joe";
2. Evaluate a text item that references a map item.
s = templater.eval("well, hello [!bob]");
Returns "well, hello joe" in s;
Code
templater.h
evaluator.h
evaluator.cpp
Introversion's City Generation
I asked him a ton of questions about it, 'cause I'm working on similar ideas. Anyhow, please check out the city generation stuff he's doing. He's working from Muller and Wonka's shape-grammar/L-system generation ideas and producing some awesome work.
Check out this beauty -
Emotiv Systems
Down and Out on Market Street
Networking. No. It's hard to schmooze when you're coughing every 12.2 seconds and trying to keep your nose from dripping on your new friend. So I didn't meet a lot of the people I'd hoped to. Who I did meet, I tried to keep my distance and avoid shaking hands so as not to pass on the scourge. Still, it wasn't a total loss. It was the first time I'd been and it was fascinating. The keynotes were great, including a compelling Ray Kurzweil. I didn't feel well enough to focus enough on the technical sessions to get much out of them. Still, there were a lot of ideas in the air. I also attended several game design and art sessions.
Need Input
The WiiMote and Guitar Hero/Rock Band must have spawned a lot of thought about input devices in the industry. Depth cameras and a bunch of other technologies were on display. We had NeuroSky and Emotiv Systems with their bio-sensor technologies (see the following post on Emotiv Systems).
Physics Engines, UI and Procedural Texture Technologies
A lot of middleware vendors especially surrounding Physics and UI. For physics, we had the Octave Engine and others. For UI - Scaleform, Anark, MenusMaster. Scaleform seems to be quite popular and is a Flash-based UI system. I was taken by Allegorithmic's procedural texture technologies. Oh, and motion capture.
BioShock
Everyone was talking about BioShock. I've not yet started playing it, although I do own it. I'm still playing Assassin's Creed right now which is phenomenal in its own right. I'm excited to get at it. I attended a session with Ken Levine, BioShock's designer.
More
PC World Video, Recap
GDC08 Review
I already wrote about Fable 2, though I'll probably amend that (and this) entry as I get more time and reflect a bit more about it.

