问题标签 [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.
arrays - 如何返回对 Chapel 中数组切片的引用?
我正在尝试返回对数组切片的引用,但出现以下编译时错误(违规行在slice
test.chpl:9:错误:通过 ref 返回的非法表达式
返回完整数组可以正常工作,就像在主程序中引用切片一样。
是否有正确的方法将 ref 返回到切片?提前致谢!
只是为了完整性:
chpl 版本 1.16.0 预发行版 (2659cc6)
arrays - 教堂:数组数组与内存上的 2-dim 数组
在 Chapel 中,似乎可以使用符号来声明一个数组[][]
。这看起来与其他语言中的“数组数组”非常相似,所以我想知道它是否是所谓的“锯齿状数组”,每个子数组在内存中独立分配?例如,在下面的代码中,在内存a[0][..]
中a[1][..]
是否一定是连续的?(我在这里感兴趣的是,使用此类是否[][]
可能比[,]
非连续内存效率低。)
一个相关的问题是:是否有任何方法或命令可以知道给定变量或数组元素的内存位置(地址)(以获取有关内存分配的信息)?
chapel - 嵌套缩减——在 Chapel 中写这些最惯用的方式是什么?
教堂减少目前忽略变量的初始值。这意味着这段代码
返回 10 而不是 30,正如该用户天真地认为的那样。虽然这种行为很好(并且它记录在减少子句的注释中 - 我只是没有认真考虑过),但事实证明,如果我想获得 30(通过在两个循环中累积),我需要实际上是手工计算的。我认为for
循环也有一个reduce
意图会非常优雅和对称......即我想写
请注意,即使在求和数字的情况下,我也需要引入一个临时变量。对于像 max/min 这样的操作,需要更加小心。
是否有理由不支持reduce
for 循环内部的意图?或者,是否有更惯用的(Chapel-rrific)方式来做到这一点?
更新:我想得越多,我提出的代码在外部for
被替换为forall
. 我认为问题在于变量是任务本地的而不是迭代本地的,因此减少只会发生在任务上。所以仍然需要一个单独的内部还原步骤。这将消除对临时变量的需要。
我认为更重要的问题是做这些嵌套减少的正确方法是什么......
python - 使用 Chapel 处理海量矩阵
我最近遇到了教堂,我很想尝试一下。我有两个问题,我希望它能解决。
我通常使用 Python 或 C++ 工作。Java 陷入困境时。
我有两个矩阵I
和V
. 两者都很稀疏,尺寸约为 600K x 600K,人口密度约为 1%。
首先,使用 SciPy,我现在可以将两者都从 SQL 数据库加载到内存中。但是,我预计我们的下一次迭代对于我们的机器来说太大了。也许1.5M ^ 2。在这种情况下,来自 Spark 的 RDD 可能会为负载工作。我无法让 PyTables 实现这一点。我知道这被描述为“核外”问题。
即使它们确实被加载,I'IV
几分钟内就会OOM。(这里I'
是转置),所以我正在研究将这种乘法分布在多个核心(SciPy 可以做到)和多台机器(据我所知它不能)上。在这里,Spark 倒下了,但 Chapel 似乎回应了我的祈祷,可以这么说。
一个严重的限制是机器的预算。例如,我买不起克雷。礼拜堂社区有这方面的模式吗?
hpc - 如何在教堂中附加稀疏域
我在 Chapel 中填充一个稀疏数组,其中包含一个读取 CSV 的循环。
我想知道最好的模式是什么。
这是一种有效的方法吗?
我应该创建一个临时的元组数组并附加spsDom
每(比如)10,000 行吗?
谢谢!
for-loop - coforall 与 Chapel 依次循环
我正在使用 Chapel 编程语言开发调试器。在我的代码中,我需要使用coforall
循环,但不幸的是,我找不到使并行迭代按顺序执行的方法。
这是我的代码的一部分:
如您所见,我需要以并行和反向顺序执行此循环的迭代。
有什么办法吗?
command-line - 还有哪些语言与 Chapel 的配置变量有类似的概念
我刚刚发现了 Chapel 的配置变量修饰符,它非常适合命令行操作。是否有其他语言或框架可以模仿此功能,因此我不必每次都对过滤器进行编程?
chapel - Domain 如何在多维情况下将映射索引映射到目标语言环境数组
我没有找到域映射如何将多维域中的索引映射到多维目标语言环境。
1.) 目标语言环境(一维)如何以等于分布维度的多维方式排列以映射索引?
2.) 在文档中指出,对于多维情况,计算应该在每个维度上进行。对于域{1..8, 1..8}
==> dom 假设dom
是块分布在 6 个目标语言环境中。
映射步骤
1 对于第一维(1..8)进行计算
,如果idx
是low<=idx<=high
然后locid
是
floor (idx-low)*N / (high-low+1)
给我一个索引说i
。
对第二维重复相同的操作,这给了我一个索引 say j
。
现在我有一个元组( i, j )
,它是如何映射到维度 2 的目标语言环境数组的?
域映射如何将一维目标语言环境数组更改为分布维度?
是像重塑功能吗?
如果这缺乏足够的信息,请告诉我。
chapel - 使用 PyChapel 从 Python 调用 Chapel 时出错
我试图让 Chapel 将一个整数返回给 Python。我想用python call.py
.
调用.py
和response.chpl
这将返回错误
更新
根据莉迪亚的回应,我做到了
那行得通!呜呜!!!!
更新 2
根据布拉德的评论,这也有效
也许他可以就每种方法的好处添加评论。
replication - 如何在教堂的多个语言环境中复制变量
我想知道有没有一种简单的方法可以在每个语言环境上制作一个全局变量的副本,以便以后每个语言环境都可以直接访问其本地副本,而不是访问存储在 locale0 中的原始变量?
谢谢