2012-08-27 2 views
3

데이터베이스의 데이터가 필요한 CUDA 코드를 작성하고 있습니다. PostgreSQL에 저장된 데이터베이스에서 400 개의 임의의 행을 가져오고 싶습니다. 순차적으로 각 행을 검색하면 코드가 매우 느려지고 병렬 처리 및 속도 향상의 목적을 달성하지 못합니다. 그래서, 나는 C 라이브러리 또는 PostgreSQL과 여러 연결을 생성하고 데이터를 빠르게 검색 할 수있는 기능을 원한다.PostgreSQL 및 C 다중 연결

C에서 뭔가 도움이 될까요?

+0

당신은 이미 libpq' (http://www.postgresql.org/docs/9.1/static/libpq.html)'시도 및 열기 다수의 적이 'PQconnectStart()'와의 비 블로킹 연결? – halex

+0

성능 향상을 확인하기 위해 PostgreSQL을 [in-memory database] (http://stackoverflow.com/questions/1828895/postgresql-in-memory-database)로 실행하려 했습니까? –

+0

계속 : 데이터 저장이 모든 레코드를 읽는 데 헤드의 물리적 이동이 필요한 HDD에있는 경우 GPU 지원 여부에 관계없이 더 빨리 데이터를 검색 할 수 있는지 의심 스럽습니다. 따라서 고속 모드에서 데이터를 검색하려면 RAM/SSD/VRAM과 같은 임의 액세스 장치에 데이터를 저장해야합니다. 그리고 나서 다음 단계는 일부 데이터를 병렬로 검색하는 사용자 지정 코드를 작성하는 것입니다. 그러나 아마도이 단계는 PostgreSQL 개발자가 데이터베이스 엔진의 일부로 구현해야합니다. –

답변

1

아마도이 같은 쿼리가 맞는 것 :

SELECT * FROM tablename ORDER BY RANDOM() LIMIT 400; 
+0

데이터베이스 사이트에서 무작위로 행을 가져 오는 것은 대단히 효율적인 방법은 아니지만 그렇습니다. 그것이 저의 생각이었습니다. –