Вот альтернативное решение в Python 3.0, который позволяет объекты несписка строк:
>>> alist = ['a', 1, (2, 'b')]
стандартный путь
>>> ", ".join(map(str, alist))
"a, 1, (2, 'b')"
альтернативное решение
>>> import io
>>> s = io.StringIO()
>>> print(*alist, file=s, sep=', ', end='')
>>> s.getvalue()
"a, 1, (2, 'b')"
ПРИМЕЧАНИЕ: пространство после запятой является намеренным.
Я думаю, что графические процессоры специально разработаны для быстрого выполнения подобных операций (среди прочих). Так что вы, вероятно, могли бы использовать библиотеки DirectX или OpenGL для выполнения векторных операций. D3DXVec2Dot Это также сэкономит ваше процессорное время.
Ручное кодирование решения SSE2 не очень сложно и принесет хорошее ускорение по сравнению с подпрограммой на чистом языке C. Насколько это повлечет за собой выполнение процедуры BLAS, должно определяться вами.
Наибольшее ускорение достигается за счет структурирования данных в формате, чтобы вы могли использовать параллелизм и выравнивание данных.
I use a GotoBLAS. It's the hight perfomance kernel routines. The many times better than MKL and BLAS.