A smart memory computing system that uses smart memory for massive data storage
as well as for massive parallel execution is disclosed. The data stored in the
smart memory can be accessed just like the conventional main memory, but the smart
memory also has many execution units to process data in situ. The smart memory
computing system offers improved performance and reduced costs for those programs
having massive data-level parallelism. This smart memory computing system is able
to take advantage of data-level parallelism to improve execution speed by, for
example, use of inventive aspects such as algorithm mapping, compiler techniques,
architecture features, and specialized instruction sets.