Sunday, June 22, 2014

HP: reinventing the computer

HP takes a crack at reinventing the computer - CNET:

"Here's a tall order: Reinvent the computer, both hardware and software architecture. That's what Hewlett-Packard is trying to do."
Rising data volumes from "cloud computing, the Internet of things, mobile networks, machine to machine computing" are generating unfathomable and unmanageable amounts of data and a new computing architecture is necessary to deal with it, Whitman said.

"We've been using the same architecture and been doing it the same way for decades," said HP CTO Martin Fink, who also spoke at the conference.

Ninety percent of what the operating system and processors are doing "is just shuffling data between different storage tiers," he said. For example, getting data from pokey hard drives to speedier memory.

HP's answer is The Machine -- a new compute design built from the ground up. Processors specialized for a particular task or "workload" connect to a fabric based on light for communication. In turn, all of this is connected to a large single pool of "universal memory," which obviates the need for separate memory and storage tiers.

start about 15:00

Datalog: data query language

Datalog - Wikipedia, the free encyclopedia:

Datalog is a truly declarative logic programming language that syntactically is a subset of Prolog. It is often used as a query language for deductive databases. In recent years, Datalog has found new application in data integration, information extraction, networking, program analysis, security, andcloud computing.[1]


ancestor(X,Y) :- parent(X,Y).
 ancestor(X,Y) :- parent(X,Z),ancestor(Z,Y).

It is used by Datomic (that is based on Clojure)

The Datomic Information Model @ InfoQ 

by Rich Hickey (creator of Datomic & Clojure)

If you had a database containing these datoms (where sally, fred and ethel are stand-ins for their entity ids):
[[sally :age 21]
 [fred :age 42]
 [ethel :age 42]
 [fred :likes pizza]
 [sally :likes opera]
 [ethel :likes sushi]]
We could ask a query like this:
;;who is 42?
[:find ?e :where [?e :age 42]]
And get this result:
[[fred], [ethel]]