You'r running some code that is supposed to do different math operations on different operators. You can push each math operation to a separate core (as they don't affect each other), but to do that you're going to need to:
1) Parse the application and recognize that parallelization is possible (overhead)
2) Send the data to EACH other core (overhead, especially considering that the Epiphany uses a serial protocol for communication)
3) Complete the operations on each core
4) Receive notice that each core has finished it's operation (overhead)
5) Get the results of each operation and pull it back into the application for further use (overhead)
In the Parallela, this is occurring with a dual-core ARM pushing data into an FPGA pushing data into the Epiphany. It's not so easy.
Dynamic multi-core optimization such as that on modern machines requires A) programs that can handle having multiple threads and B) some sort of supervisory unit that can manage all the data in and out of the system. To keep the speed up, this would probably need to be done in hardware (Zynq FPGA fabric, anyone?).
Anyway. It's a fascinating project and I can't wait to play around with the co-processor.Statistics: Posted by jeinstei — Thu Jun 06, 2013 5:53 pm
]]>