Лек­ция № 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).

35 отзывов на запись «Лек­ция № 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.
Because here is a list of multiplayer games is that the leave was asked
Нор­маль­ную ста­тью за­сра­ли спа­ме­ры
An impressive share! I’ve just forwarded this
onto a coworker who was conducting a little homework on this. And he in fact ordered me lunch because I found it for him…
lol. So let me reword this…. Thank YOU for the meal!! But yeah, thanks for spending the time to discuss this issue
here on your web site.
My programmer is trying to persuade me to move to .net
from PHP. I have always disliked the idea because of the costs.
But he’s tryiong none the less. I’ve been using WordPress
on numerous websites for about a year and am anxious about switching to another platform.
I have heard very good things about blogengine.net. Is there a way I can transfer all my wordpress posts into
it? Any help would be really appreciated!
Hi there I am so thrilled I found your blog, I really found you by accident, while I was
researching on Yahoo for something else, Anyhow I am here now and would just like to say kudos for a fantastic post and a all round entertaining blog (I also love the theme/design), I
don’t have time to read through it all at the minute but I have bookmarked it and also added your RSS feeds, so when I have time I will be
back to read more, Please do keep up the excellent work.
Oh my goodness! Incredible article dude! Many thanks, However I am experiencing
issues with your RSS. I don’t know the reason why I am unable to join it.
Is there anybody having identical RSS problems? Anyone that knows
the solution will you kindly respond? Thanks!!

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

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

   

Можете использовать теги <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>