Лек­ция № 3: Свой­ства па­ра­л­лель­ных ал­го­рит­мов

Что­бы уско­рить ре­ше­ние за­да­чи, не до­ста­точ­но иметь па­ра­л­лель­ную вы­чис­ли­тель­ную си­сте­му. Кро­ме это­го нуж­но ещё со­здать для та­кой си­сте­мы спе­ци­аль­ную (па­ра­л­лель­ную) про­грам­му. Для то­го что­бы ал­го­ритм мог быть эф­фек­тив­но реа­ли­зо­ван в ви­де па­ра­л­лель­ной про­грам­мы, он дол­жен об­ла­дать внут­рен­ним па­ра­л­ле­лиз­мом.

Граф вы­чис­ли­тель­но­го ал­го­рит­ма

Лю­бой ал­го­ритм при­ни­ма­ет ис­ход­ные дан­ные, про­де­лы­ва­ет над ни­ми опе­ра­ции, и вы­да­ёт ре­зуль­тат. Ес­ли рас­смат­ри­вать этот про­цесс с кон­ца, то мож­но за­ме­тить, что для по­лу­че­ния ре­зуль­та­та долж­ны быть го­то­вы преды­ду­щие дан­ные, ко­то­рые не­по­сред­ствен­но ис­поль­зу­ют­ся для его по­лу­че­ния. Эти дан­ные, в свою оче­редь, за­ви­сят от дру­гих дан­ных, и так да­лее до ис­ход­ных дан­ных.

Рас­смот­рим, на­при­мер, ал­го­ритм вы­чис­ле­ния вы­ра­же­ния:

a\cdot b+\sqrt{c\cdot d}.
(1)

Вна­ча­ле нуж­но вы­чис­лить про­из­ве­де­ния a\cdot b и c\cdot d, за­тем из­влечь ко­рень, и, на­ко­нец, вы­пол­нить сло­же­ние. Мы не мо­жем вы­пол­нить сло­же­ние, по­ка не вы­чис­ле­ны оба его ар­гу­мен­та. Опи­сан­ный ал­го­ритм мож­но изоб­ра­зить сле­дую­щим об­ра­зом:

Схе­ма вы­чис­ле­ния вы­ра­же­ния (1)

Ри­су­нок 1. Схе­ма вы­чис­ле­ния вы­ра­же­ния (1)

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

Сте­пень па­ра­л­ле­лиз­ма

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

Про­ил­лю­стри­ру­ем это опре­де­ле­ние не­сколь­ки­ми при­ме­ра­ми. Нач­нём с за­да­чи сло­же­ния двух век­то­ров \vec{a} и \vec{b} раз­мер­но­сти n. Сло­же­ния a_i+b_i,\ i=1,...,n не­за­ви­си­мы и мо­гут вы­пол­нять­ся па­ра­л­лель­но:

Схе­ма сло­же­ния век­то­ров

Ри­су­нок 2. Схе­ма сло­же­ния век­то­ров

Та­ким об­ра­зом, сте­пень па­ра­л­ле­лиз­ма это­го ал­го­рит­ма рав­на n. От­ме­тим, что по­ня­тие сте­пе­ни па­ра­л­ле­лиз­ма не свя­за­но с чис­лом про­цес­со­ров си­сте­мы, оно яв­ля­ет­ся ха­рак­те­ри­сти­кой, внут­рен­не при­су­щей ал­го­рит­му. От чис­ла про­цес­со­ров за­ви­сит вре­мя, не­об­хо­ди­мое для за­вер­ше­ния вы­чис­ле­ний. На­при­мер, ес­ли n=1000, и чис­ло про­цес­со­ров p так­же рав­но 1000, то все сум­мы тео­ре­ти­че­ски мож­но вы­чис­лить за один вре­мен­ной шаг, од­на­ко при p=10 по­тре­бу­ет­ся 100 временны́х ша­гов.

Рас­смот­рим те­перь за­да­чу сло­же­ния n чи­сел a_1,...,a_n. Обыч­ный по­сле­до­ва­тель­ный ал­го­ритм

S\leftarrow a_1,\ S\leftarrow S+a_i,\ i=2,...,n
(2)

не­при­го­ден для па­ра­л­лель­ных вы­чис­ле­ний. Од­на­ко за­да­ча мо­жет быть ре­ше­на дру­гим ме­то­дом. На ри­сун­ке по­ка­за­но, как мож­но осу­ще­ствить сум­ми­ро­ва­ние вось­ми чи­сел в три эта­па при по­мо­щи ал­го­рит­ма сдваи­ва­ния:

Схе­ма ал­го­рит­ма сдваи­ва­ния

Ри­су­нок 3. Схе­ма ал­го­рит­ма сдваи­ва­ния

За­да­ча сум­ми­ро­ва­ния раз­де­ле­на на мень­шие под­за­да­чи, ко­то­рые мо­гут ре­шать­ся не­за­ви­си­мо. Для n=2^q чи­сел ал­го­ритм сдваи­ва­ния со­сто­ит из q=\log_2n эта­пов; на пер­вом эта­пе вы­пол­ня­ют­ся n/2 сло­же­ний, на вто­ром — n/4, и так да­лее, по­ка на по­след­нем эта­пе не бу­дет вы­пол­не­но един­ствен­ное сло­же­ние. Об­щее чис­ло опе­ра­ций сло­же­ния рав­но n-1: та­кое же, как в по­сле­до­ва­тель­ном ал­го­рит­ме (2).

Оче­вид­но, что на пер­вом эта­пе сте­пень па­ра­л­ле­лиз­ма рав­на n/2, на вто­ром — n/4, и так да­лее. По­доб­ный ал­го­ритм мо­жет быть при­ме­нён и для дру­гих це­лей, на­при­мер, для на­хож­де­ния мак­си­маль­но­го эле­мен­та в мас­си­ве и да­же для сор­ти­ров­ки (сор­ти­ров­ка слия­ни­ем).

Сло­же­ние ал­го­рит­мом сдваи­ва­ния име­ет ещё од­но пре­иму­ще­ство пе­ред по­сле­до­ва­тель­ным сло­же­ни­ем: он обес­пе­чи­ва­ет луч­шую (в сред­нем) точ­ность сум­ми­ро­ва­ния при ис­поль­зо­ва­нии чи­сел с пла­ваю­щей точ­кой.

Сред­ней сте­пе­нью па­ра­л­ле­лиз­ма чис­лен­но­го ал­го­рит­ма на­зы­ва­ет­ся от­но­ше­ние об­ще­го чис­ла опе­ра­ций ал­го­рит­ма к чис­лу его эта­пов. Оче­вид­но, для ал­го­рит­ма сдваи­ва­ния сред­няя сте­пень па­ра­л­ле­лиз­ма рав­на:

S=\frac{n-1}{\log_2n}.
(3)

Со сте­пе­нью па­ра­л­ле­лиз­ма так­же свя­за­но по­ня­тие зер­ни­сто­сти. Круп­но­зер­ни­стость за­да­чи озна­ча­ет на­ли­чие в ней боль­ших не­за­ви­си­мых под­за­дач, ко­то­рые мож­но об­ра­ба­ты­вать па­ра­л­лель­но. При­ме­ром мо­жет слу­жить за­да­ча ре­ше­ния не­сколь­ких раз­лич­ных боль­ших си­стем ли­ней­ных урав­не­ний, ре­ше­ния ко­то­рых ком­би­ни­ру­ют­ся на бо­лее позд­них ста­ди­ях вы­чис­ли­тель­но­го про­цес­са. Мел­ко­зер­ни­стость со­от­вет­ству­ет воз­мож­но­сти па­ра­л­лель­но­го вы­пол­не­ния ма­лых под­за­дач. Так, для сло­же­ния двух век­то­ров под­за­да­чей яв­ля­ет­ся сло­же­ние ком­по­нент, имею­щих оди­на­ко­вый но­мер. Круп­но­зер­ни­стые ал­го­рит­мы слож­но рас­па­рал­ле­лить на боль­шом чис­ле про­цес­со­ров.

Уско­ре­ние и эф­фек­тив­ность па­ра­л­лель­но­го ал­го­рит­ма

Уско­ре­ни­ем па­ра­л­лель­но­го ал­го­рит­ма на­зы­ва­ет­ся от­но­ше­ние:

S_p=\frac{T_1}{T_p},
(4)

где T_p — вре­мя вы­чис­ле­ния за­да­чи на p про­цес­со­рах. За­ме­тим, что в опре­де­ле­нии под­ра­зу­ме­ва­ют­ся дей­стви­тель­ные вре­ме­на вы­чис­ле­ний. Это де­ла­ет опре­де­ле­ние бо­лее по­лез­ным на прак­ти­ке, но за­труд­ня­ет его ис­поль­зо­ва­ние в том слу­чае, ес­ли тре­буе­мые вре­ме­на не­из­ве­ст­ны. Для иде­аль­ной вы­чис­ли­тель­ной си­сте­мы и иде­аль­ной па­ра­л­лель­ной реа­ли­за­ции ал­го­рит­ма его уско­ре­ние рав­но сред­ней сте­пе­ни па­ра­л­ле­лиз­ма.

С уско­ре­ни­ем свя­за­на эф­фек­тив­ность па­ра­л­лель­но­го ал­го­рит­ма. Эф­фек­тив­но­стью па­ра­л­лель­но­го ал­го­рит­ма на­зы­ва­ет­ся ве­ли­чи­на:

E_p=\frac{S_p}{p}.
(5)

По опре­де­ле­нию, E_1=1. Тео­ре­ти­че­ски долж­но быть S_p\leqslant p и E_p\leqslant 1. Ес­ли ал­го­ритм до­сти­га­ет мак­си­маль­но­го уско­ре­ния (S_p=p), то E_p=1. На прак­ти­ке эф­фек­тив­ность убы­ва­ет при уве­ли­че­нии чис­ла про­цес­со­ров.

Ино­гда бы­ва­ют слу­чаи, ко­гда E_p>1 («су­пер­ли­ней­ное уско­ре­ние»). Эта ано­ма­лия вы­зва­на, ча­ще все­го, дву­мя при­чи­на­ми:

  • В ка­че­стве по­сле­до­ва­тель­но­го ал­го­рит­ма был при­ме­нён не са­мый быст­рый ал­го­ритм из до­ступ­ных.
  • С уве­ли­че­ни­ем ко­ли­че­ства вы­чис­ли­те­лей рас­тёт сум­мар­ный объ­ём их опе­ра­тив­ной и кэш па­мя­ти. По­это­му всё боль­шая часть дан­ных за­да­чи уме­ща­ет­ся в опе­ра­тив­ной па­мя­ти и не тре­бу­ет под­кач­ки с дис­ка, или (ча­ще все­го) уме­ща­ет­ся в кэ­ше («аг­г­ре­га­ция кэ­шей»). В та­ких слу­ча­ях для точ­но­го из­ме­ре­ния эф­фек­тив­но­сти реа­ли­зо­ван­но­го ал­го­рит­ма сле­ду­ет умень­шать объ­ём кэш па­мя­ти каж­до­го вы­чис­ли­те­ля об­рат­но про­пор­цио­наль­но чис­лу вы­чис­ли­те­лей.

За­кон Ам­да­ля

Ма­шин­ное вре­мя па­ра­л­лель­ной вы­чис­ли­тель­ной си­сте­мы сто́ит не­ко­то­рых де­нег, по­это­му од­ной из це­лей кон­струи­ро­ва­ния па­ра­л­лель­ных ал­го­рит­мов яв­ля­ет­ся до­сти­же­ние по воз­мож­но­сти боль­ших эф­фек­тив­но­сти и уско­ре­ния. Од­на­ко эта си­ту­а­ция не все­гда до­сти­жи­ма: на прак­ти­ке мак­си­маль­ное уско­ре­ние мож­но по­лу­чить лишь для три­ви­аль­ных за­дач. Глав­ные фак­то­ры, обу­слав­ли­ваю­щие от­кло­не­ние от мак­си­маль­но­го уско­ре­ния, та­ко­вы:

  • От­сут­ствие мак­си­маль­но­го па­ра­л­ле­лиз­ма в ал­го­рит­ме и/или не­сба­лан­си­ро­ван­ность на­груз­ки про­цес­со­ров.
  • Об­ме­ны, кон­флик­ты па­мя­ти и вре­мя син­хро­ни­за­ции.

Хо­тя за­держ­ки, свя­зан­ные с син­хро­ни­за­ци­ей, об­ме­на­ми и кон­флик­та­ми па­мя­ти, по сво­ей при­ро­де раз­лич­ны, их воз­дей­ствие на об­щий про­цесс вы­чис­ле­ния оди­на­ко­во: они за­мед­ля­ют его на вре­мя, не­об­хо­ди­мое для под­го­тов­ки дан­ных, нуж­ных для даль­ней­ше­го сче­та. По­это­му ино­гда сле­ду­ет объ­еди­нять все три фак­то­ра за­держ­ки, как это сде­ла­но в сле­дую­щем опре­де­ле­нии.

Вре­ме­нем под­го­тов­ки дан­ных на­зы­ва­ет­ся за­держ­ка, вы­зван­ная об­ме­на­ми, кон­флик­та­ми па­мя­ти или син­хро­ни­за­ци­ей и не­об­хо­ди­мая для то­го, что­бы раз­ме­стить дан­ные, тре­бую­щие­ся для про­дол­же­ния вы­чис­ле­ний, в со­от­вет­ствую­щих ячей­ках па­мя­ти.

Об­ра­тим­ся те­перь к фак­то­ру от­сут­ствия мак­си­маль­но­го па­ра­л­ле­лиз­ма. Он мо­жет про­яв­лять­ся по-раз­но­му. При сло­же­нии n чи­сел мы ви­де­ли, что на пер­вом эта­пе ал­го­рит­ма па­ра­л­ле­лизм мак­си­ма­лен, од­на­ко на каж­дом по­сле­дую­щем эта­пе сте­пень па­ра­л­ле­лиз­ма умень­ша­ет­ся вдвое. Та­ким об­ра­зом, в боль­шин­стве слу­ча­ев сред­няя сте­пень па­ра­л­ле­лиз­ма ал­го­рит­ма мень­ше n.

Рас­смот­рим про­стую мо­дель, ко­гда часть опе­ра­ций в ал­го­рит­ме вы­пол­ня­ет­ся од­ним вы­чис­ли­те­лем, а остав­шие­ся опе­ра­ции вы­пол­ня­ют­ся па­ра­л­лель­но все­ми вы­чис­ли­те­ля­ми, то­гда:

S_p=\frac{T_1}{\left(\alpha+(1-\alpha)/p\right)\cdot T_1+t_d},
(6)

где T_1 — вре­мя, за­тра­чи­ва­е­мое на реа­ли­за­цию ал­го­рит­ма на од­ном про­цес­со­ре, \alpha — до­ля опе­ра­ций в ал­го­рит­ме, вы­пол­няе­мых од­ним про­цес­со­ром, 1-\alpha — до­ля опе­ра­ций, вы­пол­няе­мых все­ми p про­цес­со­ра­ми, t_d — об­щее вре­мя, тре­бу­е­мое для под­го­тов­ки дан­ных. В слу­чае ес­ли \alpha=0 и t_d=0, уско­ре­ние мак­си­маль­но: S_p=p. Пред­по­сыл­ки дан­но­го слу­чая за­клю­ча­ют­ся в том, что все опе­ра­ции вы­пол­ня­ют­ся с мак­си­маль­ным па­ра­л­ле­лиз­мом и от­сут­ству­ют за­держ­ки на под­го­тов­ку дан­ных. В слу­чае t_d=0 по­лу­ча­ем фор­му­лу, на­зы­ва­е­мую за­ко­ном Ам­да­ля:

S_p=\frac{1}{\alpha+(1-\alpha)/p}.
(7)

За­кон Ам­да­ля, не­смот­ря на то, что он не учи­ты­ва­ет мно­гих фак­то­ров, на­кла­ды­ва­ет силь­ные огра­ни­че­ния на мак­си­маль­но до­сти­жи­мую эф­фек­тив­ность па­ра­л­лель­но­го ал­го­рит­ма.

Пред­по­ло­жим, на­при­мер, что \alpha=1/3, то есть две тре­ти опе­ра­ций в ал­го­рит­ме мо­гут вы­пол­нять­ся па­ра­л­лель­но, а треть — нет. То­гда уско­ре­ние S_p<3. Та­ким об­ра­зом, не­за­ви­си­мо от ко­ли­че­ства про­цес­со­ров и да­же при иг­но­ри­ро­ва­нии всех за­трат на под­го­тов­ку дан­ных мы не смо­жем уско­рить ре­ше­ние за­да­чи бо­лее, чем в три ра­за. Гра­фи­ки за­ви­си­мо­сти уско­ре­ния и эф­фек­тив­но­сти от чис­ла про­цес­со­ров по­ка­за­ны на ри­сун­ке для \alpha=1/3:

Уско­ре­ние и эф­фек­тив­ность

Ри­су­нок 4. Уско­ре­ние и эф­фек­тив­ность,
вы­чис­лен­ные по урав­не­нию (7) для \alpha=1/3

Из гра­фи­ка вид­но, что ес­ли треть опе­ра­ций ал­го­рит­ма не уда­ёт­ся рас­па­рал­ле­лить, то для то­го, что­бы уско­рить ре­ше­ние за­да­чи в два ра­за, её нуж­но за­пу­стить на 4-х про­цес­со­рах, а для то­го, что­бы уско­рить в 2.5 ра­за — аж на 10-ти про­цес­со­рах. И это лишь тео­ре­ти­че­ская оцен­ка: на прак­ти­ке бу­дет ещё ху­же.

Для срав­не­ния на ри­сун­ке 5 по­ка­за­ны те же гра­фи­ки для \alpha=1/10:

Уско­ре­ние и эф­фек­тив­ность

Ри­су­нок 5. Уско­ре­ние и эф­фек­тив­ность,
вы­чис­лен­ные по урав­не­нию (7) для \alpha=1/10. Об­ра­ти­те вни­ма­ние на дру­гой мас­штаб вер­ти­каль­ной оси по срав­не­нию с преды­ду­щим ри­сун­ком.

Ви­дим, что в этом слу­чае си­ту­а­ция го­раз­до луч­ше.

Очень важ­но на ран­них ста­ди­ях раз­ра­бот­ки ал­го­рит­ма оце­нить его ха­рак­те­ри­сти­ки, что­бы опре­де­лить, бу­дет ли эта раз­ра­бот­ка це­ле­со­об­раз­ной. Ведь мо­жет ока­зать­ся так, что про­грам­му нуж­но бу­дет за­пу­стить все­го не­сколь­ко раз для по­лу­че­ния ре­зуль­та­тов. И ино­гда про­ще по­до­ждать не­де­лю, по­ка от­ра­бо­та­ет по­сле­до­ва­тель­ная про­грам­ма, чем на не­де­лю доль­ше со­зда­вать па­ра­л­лель­ную про­грам­му.

P.S.

Бо́льшая часть ма­те­ри­а­ла лек­ции взя­та от­сю­да: http://oldunesco.kemsu.ru/mps/ (па­ра­гра­фы 26–28).

29 отзывов на запись «Лек­ция № 3: Свой­ства па­ра­л­лель­ных ал­го­рит­мов»

Афф­тар пис­чи ис­чо!!!
А вап­ще я пер­вый нах!
вто­рой, чо
Де­би­лы
Ле­таю­щий Сан­та Клаус — вол­шеб­ство у те­бя в ру­ках! От­лич­ный по­да­рок де­тям и взрос­лым на Но­вый год!
http://www.greatbutik.ru/
Все Ва­ши фан­та­зии сбу­дут­ся имен­но здесь
ИНТЕРНЕТ-МАГАЗИН ДЛЯ ВЗРОСЛЫХ
http://www.grandstore.org
Ку­пить се­ме­на ме­до­но­сов, по­до­рож­ни­ка, кра­пи­вы http://semenatrav.su/
Как вы­брать ка­че­ствен­ный хо­стинг? При вы­бо­ре хо­стин­га в первую оче­редь сле­ду­ет об­ра­тить вни­ма­ние на сле­дую­щие ха­рак­те­ри­сти­ки:
Объ­ем предо­став­ля­е­мо­го ме­ста
Ча­сто хо­стинг-про­вай­де­ры огра­ни­чи­ва­ют объ­ем ме­ста на жест­ком дис­ке. На рос­сий­ском рын­ке хо­стинг-про­вай­де­ры ча­сто предо­став­ля­ют сле­дую­щие объе­мы:
1 GB;
3 GB;
6 GB;
10 GB.
На за­ру­беж­ном рын­ке по­чти все круп­ные хо­стинг-про­вай­де­ры предо­став­ля­ют не­огра­ни­чен­ное ме­сто на жест­ком дис­ке.
Про­пуск­ная спо­соб­ность
Пре­жде чем при­об­ре­тать хо­стинг удо­сто­верь­тесь, что он об­ла­да­ет не­об­хо­ди­мой Вам про­пуск­ной спо­соб­но­стью.
Рас­счи­тать не­об­хо­ди­мую про­пуск­ную спо­соб­ность мож­но по сле­дую­щей фор­му­ле: сред­ний_вес_стра­ни­цы*ожи­да­е­мое_ко­ли­че­ство_пр­осмот­ров_за_ме­сяц.
На­при­мер ес­ли сред­няя стра­ни­ца Ва­ше­го веб-сай­та име­ет раз­мер 20Kb и Вы ожи­да­е­те, что стра­ни­цы бу­дут пр­осмот­ре­ны за ме­сяц 150000 раз, то не­об­хо­ди­мая Вам про­пуск­ная спо­соб­ность бу­дет рав­на: 0,02Mb*150000=3GB. Ко­ли­че­ство сай­тов для раз­ме­ще­ния
Хо­стинг-про­вай­дер мо­жет огра­ни­чить ко­ли­че­ство веб-сай­тов, ко­то­рые мо­гут быть раз­ме­ще­ны на хо­стин­ге. Ба­зы дан­ных
Хо­стинг-про­вай­дер мо­жет огра­ни­чить ко­ли­че­ство до­ступ­ных для со­зда­ния баз дан­ных.
Удо­сто­верь­тесь, что ко­ли­че­ство предо­став­ляе­мых баз дан­ных удо­вле­тво­ря­ет нуж­ды Ва­ше­го про­ек­та.
Ско­рость и ка­че­ство со­еди­не­ния
Пре­жде чем при­об­ре­тать хо­стинг оце­ни­те ка­че­ство со­еди­не­ния с сай­та­ми, ко­то­рые уже поль­зу­ют­ся услу­га­ми дан­но­го хо­стинг-про­вай­де­ра.
Так­же об­ра­ти­те вни­ма­ние на до­ступ­ность этих сай­тов в раз­ное вре­мя су­ток. Пом­ни­те, что каж­дая ми­ну­та не­до­ступ­но­сти сай­та ли­ша­ет Вас по­се­ти­те­лей.
За­ру­беж­ные хо­стинг-про­вай­де­ры ча­сто да­ют га­ран­тию, что 99.9% вре­ме­ни сер­ве­ра бу­дут на­хо­дит­ся в ра­бо­чем со­стоя­нии.
Под­держ­ка язы­ков про­грам­ми­ро­ва­ния
Удо­сто­верь­тесь под­дер­жи­ва­ет ли хо­стинг язы­ки про­грам­ми­ро­ва­ния, ко­то­рые ис­поль­зу­ют­ся в Ва­шем про­ек­те.
При­ме­ры язы­ков про­грам­ми­ро­ва­ния, ко­то­рые мо­гут ис­поль­зо­вать­ся для реа­ли­за­ции про­ек­тов: CGI, Fast CGI, PHP, Ruby on Rails, Perl, Python, SSI. оце­ни­те ка­че­ство без­ли­мит­но­го хо­стин­га бес­плат­но на про­тя­же­нии 3 ме­ся­цев. Прой­ди­те наш хост-драйв.
http://hostpad.ru/
При­вет­ству­ем вас до­ро­гие дру­зья ! мы ра­ды пред­ло­жить вам свои услу­ги, раз­ме­стить ва­шу ре­кла­му на 1 000 000 фо­ру­мов, веб сай­тов, бло­гах , дос­ках объ­яв­ле­ни­ях во всем ми­ре!
От1 до 50 мил­ли­о­нов уни­каль­ных лю­дей по­се­тят ваш сайт или ин­тер­нет ма­га­зин за 1 день ! Ва­ши до­хо­ды уве­ли­чат­ся на 500 %
По­то­му что каж­дое со­об­ще­ние рас­сы­ла­ет­ся на род­ном язы­ке сай­та или фо­ру­ма к при­ме­ру: на Ки­тай­ском фо­ру­ме бу­дет на­пи­са­но на ки­тай­ском язы­ке, На Рус­ском фо­ру­ме бу­дет на рус­ском язы­ке, На Аме­ри­кан­ском бло­ге зна­чит на ан­глий­ском, на Гер­ман­ском зна­чит на не­мец­ком, или на лю­бом дру­гом язы­ке.
От вас по­тре­бу­ет­ся толь­ко ре­клам­ный текст на ва­шем язы­ке, ссыл­ка на ваш сайт и кар­тин­ка. Все осталь­ное мы сде­ла­ем за вас!
Сто­и­мость на­ших услуг:
Од­но­ра­зо­вая рас­сыл­ка: 50 $ (рас­сыл­ка про­хо­дит 1 раз по мил­ли­он­ной ба­зе веб сай­там, фо­ру­мах, бло­гах , дос­ках объ­яв­ле­ни­ях во всем ми­ре)
По­сто­ян­ная рас­сыл­ка 24/7/31: 500$ за 1 ме­сяц ( на этом та­ри­фе вы мо­же­те в лю­бое вре­мя по не­сколь­ко раз из­ме­нить ваш текст, ссыл­ку, и кар­тин­ку. Об­ра­тив­шись к нам на наш e-mail.)
Рас­сыл­ка пре­кра­ща­ет­ся сле­дую­ще­го ме­ся­ца в тот день и вре­мя ко­гда она на­чи­на­лась. (ко­гда нач­нет­ся рас­сыл­ка, вам на по­чту при­дёт уве­дом­ле­ние о стар­те )
для опла­ты ис­поль­зу­ем счет толь­ко PayPal.com
По­дроб­нее о нас: [url=\"https://plus.google.com/110380806572745285742/posts\"]Script Spam[/url]
По всем во­про­сам об­ра­щать­ся на e-mail: ScriptSpam@gmail.com
________________________________________________________________________________________
P.S.Наи­бо­лее ча­сто к нам об­ра­ща­ют­ся что бы мы раз­ме­сти­ли ссыл­ки на стра­ни­цу, где рас­по­ло­же­ны ре­клам­ные бло­ки Google AdSense , YouTube и дру­гие парт­нер­ские про­грам­мы.
Hi, Best 0day Music, Download mp3 tracks, Private FTP: http://0daymusic.org
Best Albums Hardstyle, Hardcore, House, Techno, Trance, Dance…
Здрав­ствуй­те!
Мы про­да­ем мо­ло­деж­ную одеж­ду оптом, на­пря­мую от фаб­рик. У нас од­ни из са­мых низ­ких цен.
Все ви­ды до­став­ки по Рос­сии и СНГ. наш сайт: opt2015.tk Hello!
Find out wow price from Russia! our web page: opt2015.tk
Иг­ро­ки хай дай, вос­тор­гу­ют­ся и ра­ду­ют­ся сайт ко­то­рый за­ни­ма­ет­ся те­ма­ти­кой иг­ры hay day. Ко­то­рая идет на мо­биль­ные те­ле­фо­ны и план­ше­ты. Мы бу­дем вам по­мо­гать от­ве­чать на ва­шы по­пу­ляр­ные во­про­сы по иг­ре хай дай. С на­ми бу­дет удоб­ней, еко­но­мич­ней, и быст­рее иг­рать и раз­ви­вать свою лю­би­мую фер­му. Но как вы ви­ди­те свою фер­му меч­ты это уже ва­ше де­ло, мы лишь по­мо­жем и на­пра­вим на ис­тин­ный путь ко­то­рый бу­дет пра­виль­нее и луч­шее все­го, для раз­ви­тия.
иг­ра hay day http://hayday1.ru/
Вот вре­мя по­до­шло вам рас­ска­зать о бло­ге от стро­и­те­ля за спецаль­но­стью, за раз­ны­ми и по­хо­жы­ми спецаль­но­стя­ми шту­ка­тур­ка, ма­ляр­ка, утеп­ле­ние, и кон­ст­рук­ции зда­ний. Вы это все узна­е­те и пой­ме­те не толь­ко азы этих про­фе­сий и узна­е­те из­держ­ки этих про­фе­сий и не толь­ко. Все это бу­дет поз­но­ва­тель­но для вас, и на­пи­са­но по­нят­ным язы­ком, текст чи­та­бель­ный и все это у нас на бло­ге.
Блог стро­и­те­ля http://stroi48.ru/
В на­шем ин­тер­нет-ма­га­зи­не луч­ший ас­сор­ти­мент и луч­шие це­ны
http://miraclefairy.ru/
От­лич­ный но­вост­ной ав­то сайт, где вы най­де­те мно­го ин­фор­ма­ции по пре­стиж­ным ав­то­мо­би­лях, ко­то­рые сто­ят не де­ше­во. Это на­при­мер та­кие мар­ки ав­то как фе­ра­ри, пон­ти­ак, аль­фа-ро­мео, и дру­гие пре­стиж­ные мар­ки ав­то, ко­то­рые не до­ста­нуть­ся че­ло­ве­ку без де­нег. Мно­го ин­фор­ма­ции по их по­ис­ку, от­зы­вы по­ку­па­те­лей и мно­гое дру­гое, ав­то­мо­биль­ный пор­тал но­во­го по­ко­ле­ния для по­ис­ка се­бе ма­ши­ны, и вы­бо­ра сво­е­го транс­порт­но­го сред­ства пе­ре­дви­же­ния.
Пре­стиж­ные ав­то, для лю­дей с день­га­ми. http://prestig-auto.ru/
Спа­си­бо за ре­ко­мен­да­цию по на­хож­де­нию до­су­го­во­го сай­та в Ека­те­рин­бур­ге. Мно­гие де­вуш­ки ока­за­лись очень спо­соб­ны­ми жри­ца­ми люб­ви. А имее­но про­сти­тут­ки Ека­те­рин­бур­га http://ekb.senoval24.com и удо­воль­стви­ем нас встре­ча­ли и об­слу­жи­ва­ли в до­ро­гих апар­та­мен­тах. В об­щем и им и нам все по­нра­ви­лось.
Ре­ко­мен­ду­ем наш ин­тер­нет-ма­га­зин
http://www.big-butik.ru/
Ин­те­рес­ные ста­тьи и фак­ты:
rent-service.com.ua
Ин­те­рес­ные ста­тьи и фак­ты:
арен­да плаз­мен­ной па­не­ли
ко­му бу­дут нуж­ны по­дар­ки в ин­тер­нет ма­га­зи­не
http://www.miraclefairy.ru/
На­бор ре­зи­нок для пле­те­ния «Loom Bands» (Rainbow Loom)
В ин­тер­нет ма­га­зи­не
http://www.hellomadam.org/vip403.php
Ре­ко­мен­ду­ем вам зай­ти на наш сайт, мы за­ни­ма­ем­ся рас­крут­кой ва­ших про­ек­тов, в том чис­ле для уве­ли­че­нии по­се­ти­те­лей, тИЦ, ссылоч­ной ба­зы и мно­го­го дру­го­го. Эфект от на­ших про­го­нов ко­ло­саль­ный, а це­ны уме­ре­ные ко­то­рые до­ступ­ны каж­до­му же­лаю­ще­му да­же но­вич­кам у ко­то­рых ми­ни­маль­ный бюж­дет.
По по­дроб­ней вы мо­же­те посмот­реть http://webmaster-seo.ru/ruchnoj-progon-po-gostevym-sajtam/ У нас мно­го раз­ных ти­пов про­го­нов го­сте­вые, тра­с­то­вые, бло­ги, и мно­гое дру­гое. Вы точ­но най­де­те то что вам нуж­но. Ба­зы все на­ши не в па­б­ли­ке, по­сле про­го­на мы ски­ды­ва­ем ми­ни от­чет о про­де­лан­ной ра­бо­те. Вы­бо­роч­но не­сколь­ко штук сай­тов где раз­ме­щен­на ва­ша ин­фор­ма­ция(ссыл­ка), мы ски­ды­ва­ем ми­ни от­чет для устра­не­ние сли­ва на­шей ба­зы.
Хо­ти­те со­здать сайт, но не зна­е­те как? То­гда вам на наш пор­тал для веб­ма­сте­ров, где вы най­де­те все для со­зда­ния ва­ше­го сай­та на лю­бом движ­ке иди на са­мо­пис­ном. На­при­мер у нас есть все для дле, юкоз, ворд­пресс и мно­гих дру­гих движ­ков сай­тов. Так же ка­че­ствен­ная ст­рук­ту­ра и быст­рая за­груз­ка сай­та так же по­мо­жет быст­ро най­ти нуж­ны скрипт, шаб­лон, дви­жок, хак. Все для веб­ма­сте­ра, движ­ки, скрип­ты, шаб­ло­ны http://bs-web.ru/
Пор­тал о ди­зай­не раз­ные ис­ход­ни­ки в псд фор­ма­те раз­ные ма­ке­ты псд и икон­ки для ва­ше­го сай­та или ма­ке­та. Про­стой ди­зайн на­ше­го сай­та поз­во­лит вам най­ти нуж­ный для вас еле­мент ди­зай­на и ска­чать бес­плат­но и так же быст­ро. Ма­ке­ты psd, икон­ки для сай­та, кноп­ки psd http://zimadesign.ru/
Зе­ро­прост – это уни­каль­ный ком­плекс на­ту­раль­ных ин­гре­ди­ен­тов ко­то­рый эф­фек­тив­но бо­рет­ся с про­ста­ти­том, аде­но­мой и ги­пер­пла­зи­ей про­ста­ты.
http://offer.moscow/vis18.php
Стро­и­тель­ство ча­ст­ных до­мов и кот­те­джей в крас­но­да­ре, ище­те на­деж­но­го и опыт­но­го ге­не­раль­но­го под­ряд­чи­ка для ве­де­ния граж­дан­ско­го и про­мыш­лен­но­го стро­и­тель­ства на тер­ри­то­рии Крас­но­дар­ско­го края? Для вас важ­ны га­ран­тия ка­че­ства и жест­кое соблю­де­ние ого­во­рен­ных сро­ков? Ище­те ком­па­нию, спо­соб­ную вы­пол­нить стро­и­тель­ство до­ма в Крас­но­да­ре и кот­те­джей под ключ, мо­но­лит­ных мно­го­квар­тир­ных зда­ний, офис­ных и тор­го­вых цен­тров, а так­же дру­гой ком­мер­че­ской не­дви­жи­мо­сти за ми­ни­маль­ный пе­ри­од вре­ме­ни? http://konsolug.ru/ — стро­и­тель­ство до­мов и кот­те­джей в крас­но­да­ре, стро­и­тель­ство кот­те­джа под ключ крас­но­дар, стро­и­тель­ство до­мов из кир­пи­ча в Крас­но­да­ре, стро­и­тель­ство до­мов из кир­пи­ча крас­но­дар, стро­и­тель­ство до­мов из пе­нобло­ков в Крас­но­да­ре
Уни­каль­ные спе­циа­ли­сты та­кие как Вла­ди­мир За­ку­си­ло до­сти­гая опре­де­лён­но­го уров­ня, фор­ми­ру­ют свой не­по­вто­ри­мый стиль и ме­то­ды. Он со­здал свою уни­каль­ную си­сте­му ра­бо­ты с энер­ги­я­ми. Яв­ля­ясь спе­циа­ли­стом вы­со­чай­ше­го клас­са как био­энер­го­те­ра­певт и це­ли­тель, сов­ме­щаю­щий свой ис­це­ляю­щий дар с на­ра­бо­тан­ны­ми за дол­гие го­ды ме­то­ди­ка­ми для при­ме­не­ния к раз­лич­ным за­бо­ле­ва­ни­ям на­чи­ная от кож­ных за­бо­ле­ва­ний и за­кан­чи­вая меж­по­звон­ко­вы­ми гры­жа­ми.
http://zakusilo.ru/
Ланд­шафт­ный ди­зайн са­мо­сто­я­тель­но это очень про­сто! Ес­ли вы – эс­тет, лю­би­тель пре­крас­но­го, уюта и ком­фор­та не толь­ко внут­ри ва­ше­го жи­ли­ща, но и сна­ру­жи, то этот сайт имен­но для вас. Же­ла­ние обу­стро­ить свой дом или да­чу не­из­беж­но стал­ки­ва­ет­ся с на­ли­чи­ем са­да, га­зо­на, бе­сед­ки, са­до­вых до­ро­жек и цве­точ­но­го па­ли­сад­ни­ка – та­ким об­ра­зом лю­бой дач­ник и ча­ст­ный вла­де­лец зна­ко­мит­ся по­не­во­ле с ланд­шафт­ным ди­зай­ном. http://rozarii.ru/sadovye-dorozhki/dostoinstva-rezinovyx-pokrytij.html
It’s a mammoth playground built of mountains, hills, lakes, rivers, valleys, woodlands,and beaches.

Оставить отзыв

Жёлтые поля обязательны к заполнению

   

Можете использовать теги <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang=""> <div class=""> <span class=""> <br>