Wednesday, March 19, 2008

Future Headlines

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

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

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

CNN (January 1, 2016) - It is now possible to find more than fifty-percent of the world's population on the internet. .. (more)

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. ;)


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

The Microsoft Xbox 360 platform is now profitable and Sony's PlayStation 3 is gaining parity with the Xbox 360 in the marketplace. We're about halfway through this console cycle (these cycles typically last about five years) and we can reflect on technology choices with the benefit of some hindsight. The ramifications of some of the more obvious choices, for example PS3's Blu-Ray vs. 360's plain-old-DVD, are well known. Microsoft's background as a operating system and compiler developer provides the 360 with perhaps the best development tools ever to grace a non-desktop system. We'll look at that in another entry. We'll also want to compare the Xbox 360 GPU and the PlayStation 3 GPU.

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

At GDC I came across Chris Delay from Introversion Software. I recognized him from the picture next to his blog. I've been admiring the work that he's has been doing with city generation and I was happily surprised to meet him in the line for one of the sessions. Not thinking, I extended my hand. I hope I didn't get him sick.

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

While at the Game Developers' Conference, I checked out Emotiv Systems and their EEG-based input ('mind-reading') technology in the form of the $300 EPOC to be released later this year. I spoke to the Emotiv guys at their booth, they seemed a bit secretive about their technology. They described it as telepathy. The EEG input device concept is interesting to me, but seems a little gimmicky. In fairness, though, I didn't try it. Like a resurrected computer-enhanced biofeedback machine? Not sure how well it would work in real life. The devices don't use conductive gel like real EEGs use. The input device also tracks eye and facial muscular movement, so it's more than just an EEG, but an EMG as well. Also, EEGs require the user to be still. That's a tall order for a videogame player. Anyhow, assuming that sophisticated signal processing could overcome the lack of conductive gel and motion, it seems that the response time in changing gross brain state (for example, to punch a bad guy) would be glacial and using it would be exhausting. What is really interesting to me, though, is how they're doing their signal processing. My initial guess is principle components analysis with a prototype database. I wonder if I'm way off base there.

Down and Out on Market Street


As I alluded to in the Fable 2 post, EA sent me to the Game Developers' Conference (GDC) this year in San Francisco. Unfortunately, I saw far less of it than I would have liked because I was down with the flu. I think I spent more time in bed and at the Walgreens at Market Street & 4th than I did at the conference. That may be an exaggeration, but it was still disappointing. I also ended up getting Colin Campbell (a colleague of mine) all sick, which just sucked doubly.

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.