Page 1 of 1

Per Core Capacity?

PostPosted: Fri Aug 26, 2016 1:24 pm
by DJW
Hello dudes,

I consider to buy a Parallella-Board, but first I have to get information about the following question:

How "big" is one single core of the 16? I want to run parallel python code on each core that communicates with each other and I want to know
how much code I can execute on one core. I know that this depends on the operatons in the code, but what can I expect?
Further information:
I have multiple python objects and want to run 5-10 per Core (so total 90-160) in parallel.
Each objects constantly solves medium difficult computation and saves stuff in a python-list.

Is anyone able to provide information regarding this?
Thank a lot :)

Greetings from Germany
DJW

Re: Per Core Capacity?

PostPosted: Mon Aug 29, 2016 6:37 pm
by sebraa
Each Epiphany core contains 32 KB (kilobyte) of fast local memory, as well as 32 MB of (slow) external memory. These 32 KB of memory need to contain (part of) the ePython interpreter, your code and your objects, as well as some additional state information. This might be a big problem, especially if you using libraries.

I do not think that Python is a suitable language for the Epiphany, and even if it works, you might not get good performance out of it. On the other hand, you seem to be talking about compute kernels, and these tend to be very small. My recommendation is to rewrite your kernels in C, which is much better supported on the Epiphany than Python.

Re: Per Core Capacity?

PostPosted: Mon Aug 29, 2016 6:54 pm
by DJW
Thanks you for your answer, this helps a lot.

I only plan to use the "parallel" lib for messaging between the cores. Do you know how big this lib is in KB? Or do you know any way how I can calculate the size it will use from the 32K-Memory?

Re: Per Core Capacity?

PostPosted: Tue Aug 30, 2016 4:16 pm
by sebraa
I do not know which library you use. My own communications library takes about 2-3 KB in each core, depending on configuration. Smaller is possible.