6

反復ごとに一連の SPARQL クエリを使用して、反復アルゴリズムを構築しています。このアルゴリズムはうまく機能しますが、CPU 使用率の問題が発生しています。Fuseki のような SPARQL エンジンは真のマルチスレッドではありません。複数の同時クエリを複数のスレッドで実行できますが、個々のクエリはそれぞれシングル スレッドです。いくつかの Fuseki ノートを見ると、Fuseki はスレッド セーフではないので、これは些細な問題ではないという印象を受けます。

私たちのアルゴリズムは SPARQL クエリに関して本質的にシリアルであり、一度に 1 つの実行に関心があるため、たとえば 32 コアを利用できる SPARQL エンジンはありますか?

4

2 に答える 2

1

YarcData によって開発および販売されている Urika エンジンは高度なマルチスレッド (最大数千の同時スレッド) であり、非常に大きなメモリで実行されます。とはいえ、愛好家の予算にはおそらく適していません。:)

于 2014-04-07T21:23:14.513 に答える
1

はい、あります。BigDataは、これのオープン ソース/商用の例です。

私自身のプロジェクトdotNetRDFもマルチスレッドを多用しています。私の場合、.Net PLINQ 機能を活用して結合、積、操作を並列FILTERBINDしていますが、常にこれに対応できるわけではありません。

Fuseki ( Disclaimer私は Apache Jena プロジェクトにも関与しています) については、AndyS が Fuseki 自体はスレッドセーフであると指摘しています。問題は、クエリ エンジン (ARQ) が操作を並列化するように設計されていないことです。これに関するいくつかのアイデアは過去に議論されていましたが、IMO ではかなり大幅な書き直しが必要になるでしょう。

于 2013-02-07T18:07:34.140 に答える