R
R
razielvamp2020-06-26 13:37:50
Multithreading
razielvamp, 2020-06-26 13:37:50

Are there any patterns or frameworks for programming for multi-core ARMs?

Modern server ARMs have a lot of weak cores, unlike the good old x86 ones.

For example, when we write a standard loop, we expect it to sequentially run through all the elements and perform some operations. In the case of an Intel with a high core frequency, the process will be completed quickly, and in an arm, ideally, it would be necessary to scatter all the elements over separate slow cores.

It is clear that in most languages ​​there are various multithreading libraries, etc., but breaking each loop into threads / processes is still too resource-intensive.

If any frameworks or new technologies in languages ​​focused on multi-core? Do all these async/await, promises somehow improve the situation in this case?
Or is it generally the task of the compiler / interpreter to make the standard cycle, if possible, spread over the cores?

If there are any examples of code, libraries or frameworks in popular languages ​​(java, php, python, js), it would be interesting to see.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Armenian Radio, 2020-06-26
@gbg

In matters of any optimization, specifics always come first. Spreading the cycle over the cores takes time to synchronize the threads before and after the cycle, and if you also have data that does not fit into one NUMA, you will warm up the atmosphere more time than counting.
Well, it rarely happens that something non-trivial can be parallelized by simply cutting the loop into pieces. If we are not talking about the number grinder, of course.
And if we are talking about a number crusher, there are BLAS and ATLAS already optimized to the very eggs, and it makes sense to rely on them, and not to cycle.

J
jcmvbkbc, 2020-06-26
@jcmvbkbc

Are there any... technologies in languages ​​that target multi-core?

openMP .

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question