Quote:
Originally Posted by bobman0330
I understood literally nothing from that article. Is there a version for people who are dumb?
I will attempt to translate.
So for starters, a "graph" has a particular meaning in computer science:
Quote:
A graph data structure consists of a finite (and possibly mutable) set of vertices or nodes or points, together with a set of unordered pairs of these vertices for an undirected graph or a set of ordered pairs for a directed graph. These pairs are known as edges, arcs, or lines for an undirected graph and as arrows, directed edges, directed arcs, or directed lines for a directed graph.
So basically it's a whole set of entities and set of relations or links between them. Huge amounts of data structured like this are increasingly common in Big Data - think about a social network, for instance, people linked together in very complex ways.
Most computer processors right now use what is called Von Neumann architecture. This has a processing unit which fetches both data and instructions from a memory store. The conduit between the processor and memory is called a "bus". The CPU has to fetch instructions and then data sequentially, which creates a problem called the "Von Neumann bottleneck":
Quote:
The shared bus between the program memory and data memory leads to the von Neumann bottleneck, the limited throughput (data transfer rate) between the central processing unit (CPU) and memory compared to the amount of memory. Because the single bus can only access one of the two classes of memory at a time, throughput is lower than the rate at which the CPU can work. This seriously limits the effective processing speed when the CPU is required to perform minimal processing on large amounts of data. The CPU is continually forced to wait for needed data to be transferred to or from memory. Since CPU speed and memory size have increased much faster than the throughput between them, the bottleneck has become more of a problem, a problem whose severity increases with every newer generation of CPU.
Bolded will be important in a sec. So, there are a number of ways that have been tried to mitigate the Von Neumann bottleneck. One thing you can do is try to be predictive about what the CPU will want next. So if the CPU requests data in memory location 1, then memory location 2, then memory location 3, then you can pre-fetch memory location 4, under the assumption that that's often what the CPU will want next.
So what problems are the absolute worst for the Von Neumann bottleneck? Per bolded above, when the CPU needs to perform "minimal processing on large amounts of data", which describes traversing a graph. Things are even worse when the nodes of the graph are distributed randomly and unpredictably through memory; or "sparsely" in the jargon.
Knowing all this, you should now be able to read and understand this:
Quote:
Graph analytic processors do not exist today, but they theoretically differ from CPUs and GPUs in key ways. First of all, they are optimized for processing sparse graph primitives. Because the items they process are sparsely located in global memory, they also involve a new memory architecture that can access randomly placed memory locations at ultra-high speeds (up to terabytes per second)... The graph analytics processor is needed, according to DARPA, for Big Data problems, which typically involve many-to-many rather than many-to-one or one-to-one relationships for which today's processors are optimized.
How exactly that works, I don't know. It's more about the possible paradigm shift away from tried and true Von Neumann architecture, and the possible applications. From another article:
Quote:
A main objective of the HIVE program is to create a graph analytics processor, which can more efficiently find and represent links between data elements and categories. These could include person-to-person interactions, and disparate links such as geography, change in doctor visit trends, or social media and regional strife... DARPA believes that such a graph processor could achieve a “thousandfold improvement in processing efficiency,” over today’s best processors.
You can see the potential.