Nerdasm | The Climax of Geeky Excitement

CAT | Software

Carnegie Mellon University and Intel’s lab in Pittsburgh have been teaming up over the last few years to work on Programmable Matter (known more commonly as Claytronics). The idea here is to create a technology that can shift it’s physical form and density to produce a mass of very small computers that can form a variety of shapes as directed by the user. The example I keep running across as I look further into these is a smartphone that goes down to it’s smallest possible size for storage (either in the ear or a pocket). Then once the user wants to make a call it reforms itself to become a more common sized and usable phone. Then if the user wants to use the internet or e-mail the device could reform once again to become a netbook. Another idea that I saw in a video that is less technologically complicated is a recliner that becomes a chaise lounge when desired.

Right now development looks to be at a stage where the team has cylinders around 2 inches in diameter and looks like 3 – 4 inches in length. They are controlled through a wire not wirelessly as would be desired, but the hardware they do have is still an interesting display of concept. These devices are patched full of magnets needed to keep the units together and the associated circuitry to take commands from the team’s input device. The team has several papers and video’s on there website that shows rather impressive development in the hardware aspect of this technology.

Being the software geek that I am the part of this that I see as really cool is that the software guys on the team have developed proprietary languages to control the movement of the catoms (claytronic atoms, witty ha?). The team has displayed the ability to make drastic transformations in shape with jut a few pages of code. Meld is the language that they have created to control the large scale movement of a network of catoms. According to the team page a user can do in one page of Meld what would take 20 to 30 pages of C++ by allowing the user to concentrate on the global level change in the network and not have to hand code the commands for each individual catom. LDP (Locally Distributed Predicates) is another language that they developed this one aimed more at pattern matching and other more specific things giving the programmer more control over what the catom’s do or look like once they reach the shape that they have been instructed. The couch example probably could be done solely with Meld while the smartphone one would certainly require LDP to make sure that the brains of the device stayed together.

This really has some neat possibilities. I highly recommend the videos on the Carnegie Mellon website (especially the one on their homepage) because they show some very awesome possibilities. The development timeline the I keep finding is to have a marketable product in three to five years, I think that’s a rather optimistic timeline but I will be watching the developments for sure.

Links:

Carnegie Mellon’s website dedicated to Claytronics

Very cool Claytronics concept video

, , , , Hide

The U.S. Defence Advanced Research Projects Agency funds a research project it calls Global Autonomous Language Exploitation (GALE). GALE is allowing companies like Dial Direct and Sakhr Software to produce software for smart phones that would allow you to communicate anywhere in the world, without years of language class. Here is a demo of their really neat translation app for the iPhone.

The languages that the government is focusing on are Arabic and Chinese, so that’s where the development is now, but once the ground work is laid it ought to be pretty easy to port of out to other languages, especially since Arabic and Chinese are two of the harder ones for English speaking people. The government is testing both speech to text and text to text translation (I guess they figure once you have the translation saying it is pretty eays) and they want 95% of a fluent humans “edit-distance” before this project is considered a success. Edit-distance is “The number of edits (modifications) that someone needs to make to the output of a machine translation system such that the resulting text is fluent English and completely captures the meaning of the gold standard reference.” They are using a few other methods to test the products automatically until they start to reach that 95% threshold but I don’t see any real need to bog you down with any more definitions that necessary.

The last published test of potential software was completed over January and February of 2008. The published results don’t look too promising. The leading scores in each category are as follows (score listed is BLUE-4 look in the link for more data on it but possible scores are between 0 and 1, 1 is perfect translation)

  • Arabic to English: 0.4557
  • Chinese to English: 0.3089
  • English to Chinese: 0.4142

Those aren’t that inspiring, but they are and year and a half old (the results for 09 won’t be released till October 30th). The demo video shows just how far they have been able to come in that time. I don’t speak Arabic at all, so I don’t know how good the English to Arabic translation was, but the Arabic to English made perfect sense (yes granted it was one rather simple sentence, but hey what can you do). Just think in the near future you may actually be able to turn your smartphone into a business tool and not just a mobile gaming platform.

As usual Links and such:

NIST 2008 Official Results: http://www.itl.nist.gov/iad/mig/tests/mt/2008/doc/mt08_official_results_v0.html

General Info about the GALE project: http://www.itl.nist.gov/iad/mig/tests/gale/

Sakhr website (not very useful): http://www.sakhrusa.com/arabic-machine-translation-MT.html

, , , , , , , , Hide

ATI, owned by AMD, has come out with a fantastic SDK that allows developers to port floating point operations and basic number computation to the highly suited Radeon GPU. These GPUs operate in a very parallel nature, the acronym they use is SIMD (single instruction, multiple data items). The point being that if you need to do a single operation to a large array (say matrix multiplication on two matrices of size 12 x 10 and 9 x 15 for instance) why do that on your logic based single, dual, quad, or if your really on the bleeding edge octo core CPU system, when you can do the same thing on you GPU that will do it with tens, hundreds, or on the real high end stuff thousands of parallel threads. The performance gains become pretty obvious to see when you compare a single digit number of threads to the tremendous power of GPU arithmetic computation.

The basis of the SDK falls on Brook+, an extension of the C programing language developed by Stanford University to give easier access to CPU GPU level operations. What AMD is distributing is basically a compiler for a language made specifically to boil relatively complex arithmetic operations down into simple instructions (referred to as kernels) that can be executed in parallel on the GPU. This then utilizes the “compute abstraction layer” (CAL) which is basically hiding all of the GPU specific instructions, so that the developer only has to learn C/C++ and the additions brought by Brook+, and not ATI’s proprietary instruction language as well (something they probably don’t want to release anyway).

To anyone that has spent much time looking into Microsoft’s .NET development environment this all starts to sound pretty familiar, a complex base that is simplified to increase usability and portability across development environments, but the one thing that I haven’t talked about yet that .NET and ATI Stream depend upon is intermediate language, the last layer of programming that AMD is giving developers access to with their SDK. This is also the realm that will be occupied solely by the masochistic type of people that have to try and get two more megaflops out out their GPU when you’re already talking about gigaflops, but since AMD had to develop this language to make everything work to begin with I guess it doesn’t hurt for them to release it to the public.

So I’ve thrown out some jargon and tried at least to make it sound like I know what the hell I’m talking about, but what does this really mean to the average user? Well that depends on how often you do a large amount of similar arithmetic calculations. If you don’t think you do any then you’re probably wrong. A plug in exists today to make Adobe Premier CS4 significantly faster because encoding video requires a ton of arithmetic operations. In fact pretty much all of the CS 4 creative suite could benefit from Stream processing. Also converting video for play on mobile devices is good use that I see in the near future. Accounting software, especially the type used for corporate taxes, could see an advantage if you’re talking about a lot of tax files. I could go on, but really the only limit to the realm of usefulness of this technology is the developers willingness to utilize the SDK. Hopefully this will go along with multi threading and become a very standard thing for programs that can see a performance boost out of it.

Linky goodness:

AMD/ATI Stream Computing FAQ’s: http://forums.amd.com/devforum/messageview.cfm?catid=328&threadid=95060&enterthread=y

AMD authored whitepaper: http://ati.amd.com/technology/streamcomputing/firestream-sdk-whitepaper.pdf

Stream Computing Overview: http://developer.amd.com/gpu_assets/Stream_Computing_Overview.pdf

More information on Brook+ that you could ever want: http://graphics.stanford.edu/papers/brookgpu/brookgpu.pdf

, , , , , , , , , Hide

« Previous Entries

Next Page »

Find it!

Theme Design by devolux.org

The thoughts and ideas expressed here are mine and mine alone, if you'd like to share them please cite me