Описание тега chapel
Chapel - это переносимый язык параллельного программирования с открытым исходным кодом. Используйте этот тег, чтобы задать вопросы о языке Chapel или его реализации. Если вам интересно изучить Chapel, протестировать его расширенное параллельное выполнение или заинтересовать более серьезную работу или даже рабочие нагрузки уровня HPC, можно запустить, протестировать и поделиться кодом Chapel через онлайн-платформу IDE по адресу https://TiO.run for обучения или в конечном итоге на фабрике Cray High-End HPC-supercomputing. Путь начинается здесь
1
ответ
Как реплицировать переменные в нескольких локалях в часовне
Мне интересно, есть ли простой способ сделать копию глобальной переменной в каждой локали, чтобы впоследствии каждая локаль получала прямой доступ к своей локальной копии вместо доступа к исходной переменной, хранящейся в locale0? Спасибо
08 авг '17 в 17:59
1
ответ
Как вернуть ссылку на фрагмент массива в часовне?
Я пытаюсь вернуть ссылку на фрагмент массива, но получаю следующую ошибку во время компиляции (где находится строка с ошибкой slice test.chpl:9: ошибка: недопустимое выражение для возврата по ссылке Возврат полного массива работает нормально, также …
07 июл '17 в 15:44
1
ответ
Выражение `forall`: параллельный или последовательный расчет?
Мое понимание forall Заявления о том, что они выполняются параллельно, а for выписки выполняются последовательно. Действительно, следующий код, кажется, подтверждает это ожидание (т.е. случайная последовательность только для forall из-за потоков) fo…
04 май '17 в 17:58
1
ответ
Как добавить разреженный домен в часовню
Я заполняю разреженный массив в Chapel циклом, который читает через CSV. Мне интересно, какая модель лучше. var dnsDom = {1..n_dims, 1..n_dims}; var spsDom: sparse subdomain(dnsDom); for line in file_reader.lines() { var i = line[1]:int; var j = lin…
22 июл '17 в 15:24
1
ответ
Заполнение массива с помощью Forall в часовне
Это нормально работает на моем ноутбуке, но мне интересно, не вызовет ли это проблемы в масштабе. Предположим, я хочу заполнить массив, который будет очень большим, но для каждой записи требуется интенсивная матричная операция с большой, разреженной…
19 дек '17 в 17:04
1
ответ
Распределение строк двухмерного массива по локалям в часовне
Я изучаю Chapel и работал с blockdist, но я не могу понять, как я могу распределить двумерный массив по рядам среди локалей.
19 ноя '18 в 06:17
1
ответ
Симуляция n-тела с общей памятью в часовне
Я пытаюсь повторно реализовать реализацию совместной памяти для симуляции n-body, представленной Питером Пачеко в главе 6.1.6 "Введение в параллельное программирование". В этой главе это было реализовано с использованием OpenMP. Вот моя параллельная…
06 окт '18 в 18:14
1
ответ
Всегда ли заново создаются переменные цикла
В следующем коде я использую имя переменной n как для локальной переменной, так и для счетчика цикла: proc main() { var n = 700; writeln( "n (before loop) = ", n ); for n in 1..3 { writeln( "n = ", n ); } writeln( "n (after loop) = ", n ); } и резул…
20 апр '18 в 19:19
1
ответ
Возникли проблемы с использованием переменной синхронизации в часовне во время распараллеливания
Итак, я работаю над этим проектом и пишу на языке вычислений Chapel. Я уже написал программу, и она отлично работает, когда работает без распараллеливания. Но потом, когда я добавляю forall утверждения, которые мне нужно распараллелить, программа ра…
30 мар '14 в 20:38
1
ответ
Аналог часовни для Фортрана сделать приращение цикла?
Есть ли аналог часовни для приращения цикла в Фортране? например, Фортран, такой как: do i = 0, numprocs, istep ... Спасибо большое.
05 июл '18 в 17:46
2
ответа
Часовня: Можете ли вы переиндексировать домен на месте?
Великий человек однажды сказал, у меня есть матрица A, Но на этот раз у нее есть подруга B, Как и Монтекки и Капулеты, они имеют разные домены. // A.domain is { 1..10, 1..10 } // B.domain is { 0.. 9, 0.. 9 } for ij in B.domain { if B[ij] <has a c…
31 авг '17 в 23:14
1
ответ
Часовня: понимание времени жизни управляемых классов с помощью zip и пользовательских итераторов
Я пытаюсь понять жизнь owned класс, когда используется в определяемом пользователем итераторе. Рассмотрим следующий код: var a = new owned C(); var b = new owned C(); a.i = 2; forall (a1,b1) in zip(a,b) { b1 = a1; } forall (a1,b1) in zip(a,b) { writ…
11 дек '18 в 14:15
1
ответ
Необязательные аргументы функции без значения по умолчанию возможно?
В Chapel мы можем легко установить значение по умолчанию для формальных аргументов функции, например: proc test( a = 1, b = 2.0, c = "hi" ) { ... } и вызвать функцию, используя также ключевые слова: test( 10 ); // a = 10, b = 2.0, c = "hi" test( b =…
12 дек '18 в 23:13
1
ответ
Как можно распечатать полностью определенный тип переменной часовни?
Чтобы распечатать тип переменной, я обычно просто использую writeln(x.type : string); Однако это не выводит полностью определенное имя (что полезно при отладке теневых переменных). Есть ли способ сделать это?
20 дек '18 в 01:22
0
ответов
Ортогональная рекурсивная бисекция в часовне (алгоритм Барнса-Хата)
Я реализую распределенную версию симуляции тела Барнса-Хата в часовне. Я уже реализовал последовательную и разделяемую версии памяти, которые доступны на моем GitHub. Я следую алгоритму, изложенному здесь (глава 7): Выполните ортогональную рекурсивн…
26 фев '19 в 12:53
1
ответ
Как получить имя текущего файла, модуля и процедуры в Chapel
Можно ли в Chapel получить имя текущего файла, модуля или процедуры каким-либо способом (например, с помощью вспомогательной функции)? Моя цель здесь состоит в том, чтобы напечатать имя процедуры без явного написания ее вручную. writeln(), proc calc…
27 фев '19 в 20:27
1
ответ
Добавление значения в общую коллекцию в классе не разрешено из-за области действия
У меня возникают проблемы при добавлении элементов в объект, который хранит коллекцию значений общего типа. Я пробовал минимальный рабочий пример, который вызывает ошибку: class OneElementQueue { type eltType; var elements : [0..0] eltType; //initia…
01 мар '19 в 00:50
1
ответ
Как настроить Chapel/GASNet для запуска мультилокальных кодов в сети MXM Infiniband с ключом раздела?
Я пытаюсь запустить многослойный код Chapel в кластере с сетью MXM Infiniband (40 Гбит / с, модель: Mellanox Technologies MT26428). Я следовал за документацией Chapel и GASNet, и я установил export CHPL_COMM_SUBSTRATE=ibv export CHPL_LAUNCHER=gasnet…
08 дек '18 в 02:07
1
ответ
Вызов внешнего модуля из часовни
Я пытаюсь использовать мой модуль NumSuch в другой программе. мой Makefile включает в себя NUMSUCH_HOME=/home/buddha314/numsuch/src MODULES=-M$(NUMSUCH_HOME) yummly: yummlyAnalysis.chpl $(CC) $(FLAGS) $(MODULES) -o yummlyAnalysis $< #$(CC) $(MODU…
04 окт '17 в 19:40
1
ответ
Увидим ли мы ожидаемое ускорение в часовне, если будут работать "внутри" виртуальных машин?
В следующем семестре я преподаю в Chapel, и мы рассматриваем возможность использования виртуальной машины для студентов вместо физической машины. Как часть класса, я хочу, чтобы студенты могли видеть ускорение при использовании нескольких потоков. Я…
11 дек '17 в 21:31