К сожалению, пока нет. Однако мы оставляем сгенерированные файлы .pxd и .py (x) в каталоге вместе с .so, чтобы вы могли использовать их в это время (это не был функциональный запрос, который мы рассмотрели, так что если вычувствую себя мотивированным, определенно не стесняйтесь открывать проблему на нашей странице Github: https://github.com/chapel-lang/chapel/issues).
Для справки, мы делаем это, потому что команда компиляции Cython довольно сложная. флаг компиляции chpl --print-commands
, но это не так (я сделаю для этого вопрос).
Вы можете передавать одномерные массивы numpy известных примитивовтипы в Chapel из Python. Мы надеемся добавить поддержку других массивов numpy в ближайшее время (надеюсь, в 1.21, намечено на март 2020 г.)
Это определенно выполнимо для массивов в Chapel - Iрекомендовал бы использовать цикл forall
при обходе этого измерения вашего массива для ваших вычислений, который разделит индексы в этом измерении на ряд задач, определяемыхЧасовня. (Для тех, кто не знаком с forall
петлями, эта ссылка дает хороший обзор концепции)
Например:
forall x in arr.domain.dim(1) {
// traverses the first dimension of arr's domain in parallel
...
}
Если вы компилируете свою библиотеку Chapel в расширение Python с настройками нескольких локалей, вы можете указать необходимое количество локалей (узлов), используя аргумент numlocales для функции
chpl_setup
расширения. Это поможет распределить код Chapel для вас при запуске вашей программы на Python.
Например, вы можете написать:
import MyChplLib
MyChplLib.chpl_setup(4)
...
, чтобы запустить вашу программу с 4locales (узлы).
Я, вероятно, должен упомянуть, что в версии 1.20 у нас нет поддержки аргументов массива в многослойных библиотеках. Мы все еще выясняем приоритеты для выпуска 1.21, так что отзывы о том, как быстро вы хотите, было бы очень полезно!