问题标签 [chapel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
51 浏览

json - 如何在 Chapel 中加载可变长度 JSON 数组?

我正在尝试加载包含 JSON 格式训练数据的Yummly数据。以下是单个记录的示例:

这是我尝试加载这些数据

我显然不会先验地知道成分的数量,所以我尝试了这条线ingredients: [1..1] string;,但无济于事。在弄乱它之后,我无法让它工作。

0 投票
1 回答
50 浏览

makefile - 从教堂调用外部模块

我正在尝试在另一个程序中使用我的NumSuch模块。我的Makefile包括

在代码中,我不想这样做,use NumSuch因为我不想污染名称空间。我以为我可以

但是在编译过程中,我得到

0 投票
1 回答
71 浏览

python - 如何在 Chapel 中双向查找类似字典的数据?

在 Python 中,如果我有一个列表,我可以找到索引。这允许我在添加内容时继续运行 ID。

所以给一个蔬菜(或块茎)我可以找到它的 ID。给定一个 ID,我可以找到一种蔬菜(或块茎)来匹配。

对于未知数量的对象并且能够从名称或 ID 中引用,Chapel 中的等效模式是什么?

0 投票
1 回答
64 浏览

list-comprehension - 如何在 Chapel 中执行内联 IF 数组构造函数?

我想根据条件创建域的子集。我可以做一个循环,但我想看看我是否可以使用内联 if。

只是重新创建数组d看起来像

但是,我想将dwhere提取e[d] < pvs. 有没有类似的方法?

0 投票
1 回答
37 浏览

dictionary - 如何在教堂中表示集合或字典?

在 Python 中,很容易创建一组独特的、无序的对象

我知道 Chapel 有域,但是将它们用作集合是否合适?有什么陷阱吗?字典呢?

0 投票
2 回答
98 浏览

list-comprehension - 将数组分配给教堂类中的属性

这是我需要在 Chapel 中重新创建的类似 Python 的模式。

产生运行时错误

我不知道 Kenny 会提前有多少个幸运数字,当时我无法实例化 Kenny。也就是说,我必须稍后分配它们。此外,我需要知道何时握住它们,知道何时折叠它们。

0 投票
1 回答
86 浏览

chapel - 继续在教堂的 FORALL 循环之外

当你把它全部写成这样的时候,你真的看到了 FORTRAN 的传统。无论如何,我无法使forall continue语法正确。

forall在教堂中使用时如何正确“跳出这个循环” ?

== 编辑 ==

错误是

0 投票
1 回答
35 浏览

chapel - 在 Chapel 中用逗号分隔打印字符串域值

我有一个域,我想用逗号输出。在 Python 中,我可以使用string .join()list .sort()-ed 产品提供的方法,但在 Chapel 中,我没有得到正确的结果。

我想读最后一行

0 投票
1 回答
81 浏览

chapel - 远程变量声明

远程变量声明如何工作?我尝试使用Chapel 语言规范第 26.2.1 节中所述的 on 子句来增加普通变量声明,但它似乎不起作用。例如,这行代码:

编译失败,报错syntax error: near 'var'

0 投票
2 回答
117 浏览

performance - 将元组有效处理为固定大小的向量

在 Chapel 中,同质元组可以像小的“向量”一样使用
(例如,a = b + c * 3.0 + 5.0;)。

但是,由于没有为元组提供各种数学函数,因此我尝试了norm()多种方式编写函数并比较了它们的性能。我的代码是这样的:

chpl --fast test.chpl我用(通过自制软件安装的 OSX10.11 上的 Chapel v1.16 和 4 核)编译了上面的代码。然后,norm_3tuple()norm_loop()norm_loop_param()给出几乎相同的速度(0.45 秒),而norm_reduce()速度要慢得多(大约 30 秒)。我检查了top命令的输出,然后norm_reduce()使用了所有 4 个核心,而其他功能只使用了 1 个核心。所以我的问题是...

  • norm_reduce()慢是因为reduce并行工作并且并行执行的开销远大于这个小元组的净计算成本?
  • 鉴于我们想要避免reduce3 元组,其他三个例程基本上以相同的速度运行。这是否意味着显式 for 循环对于 3 元组的成本可以忽略不计(例如,通过--fast选项启用循环展开)?
  • norm_loop_param()中,我也尝试param对循环变量使用关键字,但这给了我很少或没有性能提升。如果我们只对同质元组感兴趣,是否根本不需要附加param(为了性能)?

对于很多问题,我很抱歉,如果有任何关于有效处理小元组的建议/建议,我将不胜感激。非常感谢!