Multi-Core or Many-Core processors are discussed by Argon Design. – Electronic design services with Argon Design Ltd.

Multi-Core or Many-Core, which is appropriate ?

Processors were originally developed with only one core, executing one thread at a time. Programmers regularly employ "multithreading" to allow the processor to switch between threads giving the impression that the threads are running concurrently, although the tasks can only be processed one at a time. The only way to improve processing throughput is to run the core faster which requires more energy.

A multicore processor is typically made up of two, four, six or eight independent processor cores in the same silicon connected through an on-chip bus, a central intersection through which all information must flow between processor cores or between cores and memory and I/O. Multicore processors do execute threads concurrently, typically boost performance in compute intensive processes and will use use less power than coupling multiple single-core processors. However as more cores are added the on-chip bus creates an information traffic jam as all the data must travel through the same path, limiting the benefits of multiple cores.

A manycore processor is one in which the number of cores is large enough that traditional multi-processor techniques are no longer efficient. Such processors will either be more application specific or require a different approach. Tilera (now part of EZchip) addresses the multi-processor scalability problem with a revolutionary new chip architecture that can harness the processing power of hundreds of cores on a single chip. Tilera provides general purpose manycore processors with 16 to 100 identical processor cores (tiles) interconnected with Tilera's iMesh™ on-chip network.

Amdahl or Gustofson?

In 1967 Amdahl proposed what appeared to be a fundamental limit to how fast you can make your concurrent code: the performance improvement to be gained from using a faster mode of execution is limited by the fraction of time the faster mode can be used.

According to Amdahl, the speedup of a programme using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the programme. If 90% of the programme can be parallelised the theoretical maximum speedup would be 10x, no matter how many processors are used.

This implies that there is little point in developing applications to exploit manycore capabilities, other than for a few "embarrassingly parallel" patterns and problems with no sequential work at all. Amdahl analysed the effect on execution time as we add processors on the same workload.

In 1988 Gustafson argued that Amdahl's law does not do justice to massively parallel machines because they enable computations previously impossible within the given time constraints. A machine with greater parallel computation ability lets computations operate on larger data sets in the same amount of time, so Amdahl's assumptions don't match the way programmers use parallel processors. The impact of Gustafson's argument was to shift development to select or reform problems so that solving a larger problem in the same amount of time would be possible. In particular he redefines efficiency as a need to minimise the sequential part of a programme, even if this increases the total amount of computation.

Manycore design

The rapid advance in semiconductor technology has provided a step function in parallel processing resources, opening opportunities for commercialising computationally intensive applications to an unprecedented degree. Whilst Amdahl and Gustafson's laws were originally applied for multiprocessor computers, their arguments are now useful to help us in our understanding of developments using manycore processors. As implied by Gustafson, designing with manycore solutions and porting applications to make use of the massively parallel processing power is non-trivial and requires the designer to think laterally to derive the best solutions. This can be a daunting task.

This is why Argon Design have teamed up with Tilera to provide design services providing our customers with cutting edge manycore solutions based on Tilera's market leading technology. Argon Design will work with our customers to provide:

  • Detailed specification; working together to understand the requirements and agree practical solutions
  • Hardware development; to address the technical requirements including PCB, FPGA, mechanical design, ...
  • Software development; delivering excellence covering BSP, OS, drivers, applications,
  • From proof of concept through prototyping to manufacturing; including test and approvals as required.

For an example of a project using this technology see this case study.

Why not contact us, we would be delighted to discuss your business needs.