Skip to content

Сравнение скоростей способов доступа к CoreArray

Prus Yegor edited this page Oct 30, 2016 · 18 revisions

octocat Скорости выполнения бенчмарка при использовании связей (бенчмарк ниже):
Связь 1 (Java->GDSFormat): 0.006 - 0.008
Связь 2 (Java->Gdsfmt): 0.035 - 0.042
Связь 3 (C++->GDSFormat): 0.006 - 0.007
Связь 4 (R->Gdsfmt): 0.009 - 0.01

Зеленым цветом указан язык, на котором реализована библиотека.

Стрелка значит "A использует библиотеку B (через мост / напрямую)"

Из картинки видно, что так или иначе придется ссылаться на CoreArray, других библиотек нет.

У CoreArray есть две обертки, написанные автором- GDSFormat и gdsfmt.

GWASTools просто ссылается на gdsfmt, он включен в схему, потому что имеет много возможностей для конвертации GDS в другие форматы.

Для связи 1 (Java->GDSFormat) используется JNI, так как JNA гораздо медленнее.

Для связи 2 используется Rserve. (rJava плохо задокументирована и странно работает).

Бенчмарк (на Rserve/GDSFormat/JNI-GDSFormat код делает аналогичные вещи):

library(gdsfmt)
library(tictoc)

t<-as.numeric(Sys.time())

invisible((genofile <- openfn.gds("1000gen.gds")))
invisible((g <- read.gdsn(index.gdsn(genofile, "snp.position"), start=c(1), count=c(200000))))
closefn.gds(genofile);

print(as.numeric(Sys.time())-t,digits = 3)

Комментарий к бенчмарку:

Надо понимать, что бенчмарк показывает скорость передачи и конвертации большого массива данных (причем одномерного массива, при более сложной структуре данных результаты могут измениться), что далеко не всегда важный показатель. Вызов какой-нибудь одной функции(все действие происходит в c) и возврат одного простого элемента (типа числа) в джаву при любой связи будет происходить быстро.

Напоследок, нарезка скринов с результатами запусков:

Development

  1. Project structure
  2. Heroku
  3. Coding Guidelines

Вычисляемые статистики

Architecture

R

Matlab

Выбор базы данных

Angular 2

Источники данных

Random

  1. Interpolation
  2. [Charts comparison](displaying graphs control)
  3. What is Servlet?
  4. Ace-editor

GDS

  1. Библиотека CoreArray
  2. Сборка CoreArray
  3. Сравнение скоростей способов доступа к CoreArray
  4. Переделка Gdsfmt под java
  5. Разбор структуры файла из центра биоинформатики

Институт биоинформатики

Темы:

  1. Классические категориальные тесты на независимость
Clone this wiki locally