Heterogenous Computing

While at IBM I (more appropriately we) originally posited this notion to one of their patent review boards and it was struck down as not being a viable patentable idea. However, within the next few months a multi-tens-o-million euro project was initiated by the European Union to do research and development on the very same (note that I proposed this with collaboration of/by my good buddy and fellow patent initiator Lee Griffin).

It was inspired by my reading about a research team who had discovered a way to use the e-coli bacteria to solve “the burnt pancake problem” (see Engineering bacteria to solve the Burnt Pancake Problem).

Heretofore pretty much all supercomputers were designed using homogenous computational cores/processors (e.g. Intel x86, Graphical Processing Units (GPUs), PixelplanesX, etc.), so all computational problems must be decomposed and run on identical processing units.

However, the fact that a logic problem could be solved by a bacteria inspired my thinking about the notion of a computer being composed of many types of processing elements. For example a computing machine could include normal x86 based elements, GPU’s, e-Coli, and ANY additional type of processor that could be conceived/discovered/designed and embedded in the fabric of processing. Be it “conventional” processor/processing technology, organic, neural network/meshes, quantum computing elements/arrays, etc.

Although the computational elements are (somewhat) straightforward and as technology evolves new types of computational elements will be created, the technology to most aptly use them must also evolve. Current software engineering tooling and methodologies (CASE, CAE, SDLC, “agile”, compilers, operating systems/environments, etc.) are geared to these technologies, with the advent of heterogenous computing technologies these environments and tools must evolve alongside (e.g. how does a designer decompose a problem in such a way they take advantage of the technology, OR, can the design/operating environment itself be capable of being presented a problem and be able to automagically decompose it such that the appropriate processing element(s) be employed to most efficiently solve a particular problem or class of decomposed problems).

Share if you like!

Read more?

Leave a Reply

Your email address will not be published.