运行GPGPU数据库引擎Alenka时出现'thrust :: system :: system_error'错误

时间:2014-11-18 15:16:55

标签: gpgpu

我正在尝试通过加载自定义表test.tbl来运行alenka(https://github.com/antonmks/Alenka)并在其上激活选择查询。

它适用于3行或4行。 但是当我增加超过6或10行的条目数时,它在加载时没有显示任何错误(./ alenka load_test.sql),但是当我运行查询(./ alenka testquery.sql)时,它会给出错误: 抛出' thrust :: system :: system_error'的实例后,终止调用what():无效参数Aborted(core dumped)

---test.tbl---
1|2.12345|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|
1|2|3|4|5|6|7|

这是load_test.sql查询

A := LOAD 'test.tbl' USING ('|') AS (var1{1}:int, var2{2}:int, var3{4}:int,
  var4{5}:int,var5{6}:int, var6{7}:int, var7{8}:int);
  STORE A INTO 'test' BINARY;

和testquery.sql

B := FILTER test BY id <= 19980902;
D := SELECT var2 AS var2
FROM B;
STORE D INTO 'mytest.txt' USING ('|');

有人可以解释,这种错误的原因是什么?

谢谢

1 个答案:

答案 0 :(得分:1)

问题是由于轻微错误引起的,这些错误归结为这种混乱。 当在alenka上触发加载命令时,它会创建包含表的每列数据的二进制文件。 如果再次加载这些文件将被覆盖,但是如果更改了列名,则会在旧文件旁边创建一个新文件。 因此,在重命名表中的列之后删除这些文件是个好主意,以避免再次使用它们。

因此,我收到此错误是因为我之前加载了具有不同列名的数据,并忘记从其文件夹中删除这些文件(test.id *)文件。 除此之外,我还在查询(testquery.sql)文件中使用“id”而非“var1”过滤了一个错误。

由于id文件有9个条目(来自前一个模式),因此它完美地运行了9行,但是当数据库大小增加到超过该值时,推力库引发了系统错误。

希望这可以帮助别人像我一样浪费时间。