В течение моих лет разработки Python я всегда был поражен тем, насколько намного быстрее, если вам удастся переписать этот код, который зацикливается на вашем ndarray и что-то делает, с функциями numpy, которые работают на весь массив сразу. Совсем недавно я переключаюсь все больше на узел, и я ищу что-то подобное. До сих пор я обнаружил некоторые вещи, ни один из которых не выглядит многообещающим:
- scikit-node, запускает scikit-learn в python и взаимодействует с узлом. Я не пробовал, но я не ожидаю, что это даст мне самую высокую скорость, которую я бы хотел.
- Есть несколько довольно старых и новых, javascript матричных библиотек (sylvester, gl-matrix ,...). В дополнение к тому, что они не уверены, что они хорошо работают с матрицами размером больше 4x4 (что наиболее полезно при 3D-рендеринге), они, похоже, являются встроенным javascript (и некоторые, не уверенные в этом, используют ускорение webGL). Отлично в браузере, а не на узле.
Насколько я знаю, npms можно записать в C++, поэтому мне интересно, почему нет нумероподобных библиотек для узла. Недостаточно ли интерес к узлу из сообщества, которому нужна такая власть? Есть ли надежда, что функции ES6 (понимание списков) позволят компиляторам javascript автоматически индексировать собственный JS-код на скорости C++? Возможно, мне что-то не хватает?
Изменить, в ответ на близкие голоса: Заметьте, я не прошу "что такое лучший пакет для xyz". Мне просто интересно, есть ли техническая причина, по которой нет пакета для этого на узле, социальной причины или вообще нет причин, и есть только пакет, который я пропустил. Возможно, чтобы избежать слишком многих упрямых критиков, я хочу знать: у меня около 10000 матриц, которые 100 х 100 каждый. Какой лучший (* исправление, разумный быстрый) способ добавить их вместе?
Edit2 После еще нескольких копаний выяснилось, что я искал неправильную вещь. Google для "node.js научных вычислений" и есть ссылки на некоторые очень интересные заметки:
- https://cs.stackexchange.com/info/1693/a-faster-leaner-javascript-for-scientific-computing-what-features-should-i-kee
- http://www.quora.com/Can-Node-js-handle-numerical-computation-the-same-way-that-languages-like-R-or-Julia-can
- Javascript и научная обработка?
В принципе, насколько я понимаю, до сих пор никто не беспокоился. Кроме того, поскольку в js TypedArrays (например, 64bit ints) есть некоторые основные упущения, может быть сложно добавить хорошую поддержку, просто используя NPM, а не взламывать сам движок - что-то, что может победить цель. Опять же, я больше не изучал это последнее утверждение.