Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Jackdmp для шматпрацэсарных машын

Original on http://www.grame.fr/~letz/jackdmp.html


jackdmp з'яўляецца C + + версіі Jack нізкай затрымкай аўдыё сервер для аднапрацэсарных і шматпрацэсарных машын. Гэта новая рэалізацыя гняздо сервера асноўныя функцыі, якая накіравана на выдаленне некаторых абмежаванняў бягучага дызайну. Актывацыя сістэмы быў зменены для мадэлі струменя дадзеных і блакаванні без прыёмы праграмавання для графа доступу былі скарыстаны, каб больш дынамічнай і надзейнай сістэмы.


JACK2

Будучыня JACK2 будзе заснавана на кодзе jackdmp. Jack 1.9.6 з'яўляецца "пераназванне" ў jackdmp і вынік шмат падзей пачалося пасля LAC 2008 гады. У наш час распаўсюджаны ў якасці дзвюх розных версіях:

Генеральны публікацый па канструкцыя наяўныя тут. Тэхнічны дакумент пра новыя "прылад прафілявання" можна знайсці тут.


Старыя пакеты: Наступныя пакеты ўтрымоўваюць зыходны код для Linux, OSX і Windows і бінарныя версіі для OSX і Windows. Больш тэхнічнай дакументацыі таксама ўваходзіць:


Як крыніцы

Jackdmp код у наш час на SVN па адрасе: svn co http://subversion.jackaudio.org/jack/jack2/trunk/jackmp SVN

і для тых, з доступам на запіс: svn co svn+ssh://jacksvn@jackaudio.org/jack2/trunk/jackmp


JACK2 "канвеерная" эксперыментальная версія

Jackdmp Бягучая рэалізацыя дазваляе відавочна паралельнай кліентаў у графе для апрацоўкі на некалькі даступных працэсараў у той жа час. Тыповы выпадак:

А і B залежаць ад тых жа зыходных ("B" кіроўца ў дадзеным выпадку) і можа быць актывавана на 2 працэсара, C чакае і B выйсцяў.

Мы эксперыментавалі з "канвеерная" ідэя, каб паслядоўных графаў (like in ==> A ==> B ==> out) быць вылічаны на шмат'ядравых машын у больш эфектыўны спосаб. Ідэя скараціць буферы D кіроўца памеру ў N некалькіх частак да поўдня і запусціць увесь граф з буферамі N Д / памер N, напрыклад: прыняць памер буфера драйвера з 1024 кадраў, з N = 4, граф апрацоўваецца буферам 1024 / 4 = 256 кадраў. З папярэдняй графе мы паслядоўнасці ўключэння для ўсяго цыклу драйвера:

калі Х (n) уяўляе індэкс 256 кадраў буфер, выкарыстоўваны ў апрацоўцы. Апрацоўка зараз можа быць зроблена на некалькіх ядраў у той жа час.

Актывацыі мадэль была абагульнена трохі зладзіцца з гэтым справы. Існуе новы параметр-D у jackdmp каманднага радка для ўказання значэння Н. Два новых "jack_set_buffer_divisor / jack_get_buffer_divisor" функцыі былі дададзены ў API, каб дынамічнай змены дзельніка (= N) параметру ў графе працуе. Адпаведныя "jack_bufdivisor" кліент у наш час кампіляцыі.

Тэставанне: канвеерную галіну можна азнаёміцца тут: SVN супрацоўніцтва http://subversion.jackaudio.org/jack/jack2/branches/pipelining

УВАГА, УВАГА!

Пры выкарыстанні з выходных портаў, "jack_port_get_buffer" функцыя мяркуючы, што адрас буфера можа быць кэшуюцца кліентам. Гэта не дзела больш у канвеернай галіны версіі. "Jack_port_get_buffer" зараз павінны выкарыстоўваць кожных разоў падчас зваротнага выкліку для атрымання правільнага адрасу буфера. Следствам гэтых змен з'яўляецца тое, што некаторыя вельмі вядомыя Jack прыкладанняў (напрыклад, Ardour ці вадарод) ломіцца! (Красавік 2009 гады: Ardour 2.8 выпраўлена).

Код быў пратэставаны на OSX з некаторымі цяжкімі CoreAudio jackified прыкладанняў і нагрузкі Jack DSP кроплі, як чакалася, як толькі атрымлівае дзельнік> 1. Тыповыя тэсты праводзіліся з драйверамі памер буфера = 512 ці 1024 і N = 4 ці 8.


Jackdmp "прамы" эксперыментальная версія

Калі некалькі кліентаў Jack адкрыты ў той жа працэс (або сервер ці падзеленых працэсу), выдаткі на пераключэнне кантэксту паміж кліентамі можа быць паменшана на замену больш дарагім FIFO сістэма актывацыі кліента больш эфектыўным прамы заклік да кліента аўдыё Працэс зваротнага выкліку. Гэта асабліва цікава, калі кліенты злучаны ў вызначанай паслядоўнасці. Пры наступным графіку кліентаў у той жа працэс: in => [C1 => C2 => C3 => C4] => out, C1 будзе адноўлена спачатку Jack сервер стандартнай сістэмай FIFO, але C2, C3, C4 Працэс зваротнага выкліку будзе напроста зваць у С1 струменя ў рэальным часе. Для любога адвольнага графа з магчымасцю паралельнай да поўдня ад графа, сістэма актывуе любы паслядоўны шлях у графе з гэтай прамы выклік метаду і аднавіць паралельныя часткі выкарыстаннем FIFO сістэма актывацыі.

Вынікі: На 4 ядрамі Intel Mac Pro працуе гняздо на 64 кадраў з 10 падчас "мятро, як" кліентаў, падлучаных у паслядоўнасці, са звычайнай Jack схемы загрузкі працэсара актывацыі складае 12% і 4% толькі з прамой схемы актывацыі выкліку.

Тэставанне: прамая галіна можна азнаёміцца тут: SVN супрацоўніцтва http://subversion.jackaudio.org/jack/jack2/branches/direct рэжыме. Новы параметр -C дазваляе актываваць "прамы выклік". Па змаўчанні "прамы выклік" рэжым выключаны.

Published (Last edited): 14-02-2011