Skip to content

Nb practice#6

Open
nbsven wants to merge 23 commits intokamyshova:masterfrom
nbsven:nb_practice
Open

Nb practice#6
nbsven wants to merge 23 commits intokamyshova:masterfrom
nbsven:nb_practice

Conversation

@nbsven
Copy link
Copy Markdown

@nbsven nbsven commented Apr 17, 2017

Description

Поменял SinglePassSamProgram и GcBiasUtils, провел тесты, проходит все тесты что и master, сверил результаты, все сходится, провел бенчмарки.

CISM лучше работать не стал, ибо часть, которую параллелил почти не тратит времени (около секунды) поэтому время не поменялось 49,5с.

CASM время стало лучше, т.к. часть с чтением и обработкой почти одинаковы по времени, улучшилось с 59с до 39с.

CGBM изначально время не сильно стало лучше, много времени (почти полторы минуты) ест часть с setup потому решил распараллелить его, нашел внутри него цикл который был в пикарде и параллелился. Время улучшилось с 118с до 97с.

В SinglePassSamProgram распараллелить смог только часть с acceptRead, много ест часть с iterator.next(), но её не ускорить, также много ест времени часть с определением ref, но только первая итерация, все остальные почти ничего не стоят. В моем случае почему-то лучше работало когда я выставлял sem=1, что по сути дает 2 потока с чтением и обработкой. Это может быть связано либо с моим процессором, что на нем хоть и 4 виртуальных потока, но ток 2 ядра, либо с тем, что не приходится переключать локи каждый раз. Но все таки я не стал оставлять 1 дополнительный поток, а оставил зависимость от ядер на компьютере, вдруг у кого-то будет лучше, чем у меня.

В GcBiasUtils распараллелил цикл, который занимает секунд 80-90, Там пришлось делать копии массива для разных потоков, чтобы исключить гонку и можно было бы убрать лок на этот массив, т.к. переключений было так много что выигрыша почти не было, это ускорило эту часть до 50-60с, мб если понастроить можно и ещё чуть лучше.


Checklist (never delete this)

Never delete this, it is our record that procedure was followed. If you find that for whatever reason one of the checklist points doesn't apply to your PR, you can leave it unchecked but please add an explanation below.

Content

  • Added or modified tests to cover changes and any new functionality
  • Edited the README / documentation (if applicable)
  • All tests passing on Travis

Review

  • Final thumbs-up from reviewer
  • Rebase, squash and reword as applicable

For more detailed guidelines, see https://github.com/broadinstitute/picard/wiki/Guidelines-for-pull-requests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant