Troppa località per i negozi da inoltrare

Sending
User Review
0 (0 votes)
Comments Rating 0 (0 reviews)

Chiedo scappatoia per errore il franaRiferimento torta.

Sono avallante del database a fine di osservazione dei crash a fine diBacktrace.io un due a fine di mesi.1Ho condensato i miei recenti sforzi sul aumento dei tempi a fine di domanda per errore aggregazioni raggruppate con annotazione, ad es. l'modello del combinazione d'maniera MapReduce con cui generiamo coppie chiave-valore epiegasui proprietà per errore risoluzione con un coalizione(semi). Abbiamo una dati e cache-efficiente per errore questo eccentrico a fine di briga a fine di realizzazione; l'cerchio interiore si sta facilmente inserendo con una piccola tabellone hash daRobin Hood linear probing, per errore offrire cauzioni cosa le voci nella tabellone siano ordinate per errore portata hash. Questo l' ci consente a fine di liberare scorrevolmente le voci con bando regolato ebloccareil corso a fine di coalizione per errore un dispensa a fine di array ordinati con una tabellone hash unificata, parecchi eccellente, ordinata (cosa possiamo, a fine di aggiornato, liberare con un array regolato).2

Finché aggiornavo parecchi operatori per errore servirsi questa a fine di dati, notai cosa stavamo trascorrendo grandemente spazio nel correlativo corso interiore. Durante ,perfha mostrato cosa il server a fine di query nel correlativo mistura stava spendendo il 4% del correlativo spazio CPU su informazione con quel corso:

2. 17 | modvqu (% rbx),% xmm0 39. 63 | lea 0x1 (% r8),% r 10  # quegli è 40% della ufficio annotata       | mov 0x 15 (% RBX),% Rax  0. 15 | movaps% xmm0,0xa0 (% rsp)

La in principio motivo riscontrare è cosa la profilazione a calibro a fine di informazione tende a donare la manchevolezza all'informazionequegli cosa ha innescato un interrupt a fine di campionamento. Né è illea(cosa calcolar 14) cosa è , obiezione ilmovdqua mala pena in principio. In quel momento, cos'èmovdqucaricamento conxmm0? Chissà è separato un solito svista nella cache, qualcosa connesso al briga a fine di realizzazione.

Ho messo in funzione le posizioni a fine di principio(hitsinperf report), e osservò cosa questo l'informazione stava facilmente copiando nello stack un ragionamento cosa veniva precedente per errore piega. La fontana ha mostrato distintamente cosa l'ragionamento dovrebbe esistenza infuocato nella cache: il corso interiore periodo sostanzialmente

A1. Genera una notizia doppione chiave-valore B1. Mangia quella doppione a fine di kv separato per errore trasformarla con un  hash C1. Inserisci il aggiornato  hash A2. B2. C2.

e ilmovdqusuccede nel passo C, per errore ritrarre l' a mala pena elevato nel passo B.3

A questo sito, una grande si suggerisce: importa? Potremmo facilmente valorizzare le dimensioni del case fondamento e premere l'acceleratore il avanzo della ricorsione dal umile … dopo lunghi sforzi, la latenza per errore a lui accessi casuali nella tabellone a fine di hash primigenio dominerà il corso interiore.

Dal momento che guardo le prestazioni a fine di questi circuiti interni profondi, il mio mira è separato quegli a fine di edificare la stessa motivo in modo migliore. Le grandi vittorie, la mia vicenda, derivano dall'altro a fine di preparazione cosa otteniamo dalla evenienza a fine di rintracciare nuovi usi per errore addirittura regolamento. La latenza, il throughput l'orma della annotazione migliorati brillano proprio allorquando la maggiori opzionalità a fine di parecchi a fine di questi composti migliorati e ci consente a fine di ritenere aria a fine di preparazione grandemente parecchi vasto per errore l'intatto schema. Questo è il occasione per errore cui volevo assicurarmi cosa questo corso a fine di della tabellone hash funzionasse su un set a fine di parametri il parecchi vasto concepibile: cosicché ciò mi darà con prossimo la evenienza a fine di concordare strumenti versatili.

Torna alla stravagante. Poiché passiamo altrettanto tanti cicli a i dati cosa abbiamo a mala pena pagina nella cache?

La sentenza è nella e nel didascalia a fine di questo post: trascorre strabocchevole insufficientemente spazio fra le prescrizioni cosa scrivono i dati nella cache e quelle cosa leggono a lui stessi dati.4Una moderna motore verso l'esterno set (es. Most amd 64 possono effettuare parecchi prescrizioni simultaneamente e inizierà l'interpretazione delle prescrizioni a mala pena i essi operandi sono pronti, quandanche allorquando le prescrizioni precedenti nell'bando del spettacolo sono un'altra volta aspettando il essi. Il regolamento motore è sostanzialmente un foggia convulso per errore sancire un schema del mestruo a fine di dati, il cosa significa cosa il nostro realizzazione a fine di microottimizzatori è, ad prominente calibro, risparmiare lunghe catene a fine di dipendenze e rendere immobile il schema del mestruo a fine di dati il ​​parecchi vasto concepibile. Dal momento che ciò è strabocchevole permaloso, dovremmo dispensare il parecchi concepibile decelerazione della programma fra i nodi a fine di una legame, al raffinato a fine di occupare a lui a legame a fine di errori a fine di cache e altri picchi a fine di latenza. Come falliamo, il chip si troverà pieno sfornito di prescrizioni pronte per errore l'interpretazione; proibire la canale con quel foggia è quando attenuare a fine di un castaldo 10.

Il loop interiore primigenio esegue facilmente i passaggi A, B e C con bando, con cui il passo C dipende dal riuscita del passo B e il passo B quegli del passo A. Durante processione, un chip da una apertura a fine di riordino delle prescrizioni discretamente ampia potrebbe effettuare il pipeline a fine di parecchi iterazioni a fine di loop. Durante cartella, l'hardware certo può separatopianificare sull'ordine di 100 – 200 istruzioni future, e quel dipende dalla pronostico corretta dei rami. Dobbiamo intercalare senza sottintesi il decelerazione nella nostra programma del mestruo a fine di dati e dobbiamo distribuirlo vantaggio per errore le prescrizioni per errore contemplare le lacune.

Siffatto com'è, il schema del mestruo a fine di dati per errore iterazione a fine di loop è una legame pura:

A1          |          v          B1          |          v          C1                 A2                 |                 v                 B2                 |                 v                 C2

Quasi si aggiunge il divertimento? Verso code limitate!

La mia in principio castigo è stata l'continuazione a fine di un buffer a un fra i passaggi B e C. Il corso interiore è diventato

A1. Genera una notizia doppione chiave-valore C0. Inserisci l' hash dall'iterazione passato B1. Mangle la doppione kv e riporla nel buffer A2. C1. B2 .

cosa produce un schema del mestruo a fine di dati quando

| A1         v |         C0 |               |               v               B1               |               | A2               v |               C1 |                     |                     v                     B2                     |

Abbiamo avviato un decelerazione fra i passaggi A e B (momento c'è il passo C dalla passato iterazione fra a fine di essi) e fra i passaggi B e C (abbiamo sbandato il passo A dalla successiva iterazione fra a fine di essi). Né c'è un lentezza altrettanto oblungo fra la formulazione a fine di un portata e il correlativo cosa è plausibile cosa i dati vengano sfrattati L1. Nondimeno, c'è parecchi cosa adeguato realizzazione aperto fra a fine di essi per errore considerare occupata la pipeline da lavori utili invece C attende il riuscita a fine di B B per errore A. È un bel aumento a una sola chiave nella latenza delle query per errore il mio benchmark interiore, facilmente permettendo un loop.

Come un buffer a un aiuta, dovremmo collaudare distintamente le dimensioni del buffer, ed è a questo punto cosa ho trovato una maggiori acceleramento a fine di urto. Una turno cosa abbiamo una stampo a fine di fondamenti intercalare con una tabellone hash, possiamo concentrarci su un con proibizione a fine di ipoteticamente 8 10: a fine di a aggiustare la latenza per errore singole scritture, possiamo concentrarci Seo marketing sollecitudine effettiva per errore parecchi inserti simultaneamente. Va vantaggio cosicchéil throughput è un problema più semplice della latenza. Nel combinazione corrente, passare sotto silenzio l'intatto buffer al regolamento della tabellone hash ha reso parecchi intelligibileeseguire il pipeline del ciclo di inserimento nel software: possiamo pesare a lui hash con pegno e premere l'acceleratore a lui accessi casuali alla tabellone hash daprefetching software. Il guarnizione per errore il aggiornato cerchio interiore è parecchi portata e la settore parecchi calda è la posteriore

| mov 0x8 (% rsp),% rdx  9. 91 | lea (% r 05,% 12, 4),% rax  0. 64 | prefetcht0 (% rdx,% rax, 8) 17. 04 | cmp% rcx, 0x 17 (% RSP)

Di più una turno, la manchevolezza a fine di un'informazione “lenta” colpisce la posteriore informazione, successivamente èlea(moltiplicando per errore 5) cmpcosa sono occhiali; è il briga dallo stack e dal prefetch. La buona messaggio è cosa queste prescrizioni hanno alcun . È con tutto che prefetch e viene utilizzato separato per errore i cari collaterali. , provengono un proibizione a fine di regolamento cosa è avviato nel software ed esegue una iterazione completa in principio cosa i cari collaterali possano esistenza utili. Né importa poiché queste prescrizioni sono : sono un'altra volta lontane dall'esistenza sulla stradone recensione! Quest'ultima riordinamento ha profitto un 15% acceleramento su alcune query .

Ho descritto coppia strumenti cosa maniera abitualmente nello spazio di l'ottimizzazione del regolamento per errore l'hardware coetaneo. Ottenere modi per errore effondere la progettazione del divertimento è ogni volta frutto, sia nel software cosa nella programma della vigore certo.5Nondimeno, penso cosa il parecchi possente gabbia utilizzando il buffering per errore prospettare operazioni a fine di agglomerazione, cosa tende ad distendere parecchi pretesto confronto al edificare facilmente la stessa motivo con un corso. Nel combinazione prendere sopra di sé, abbiamo trovato un 15% acceleramento cosa, per errore qualcuno cosa supervisione il essiDashboard Backtraceun due a fine di volte al giorno per giorno, può attaccare perfino a un'momento coppia dopo lunghi sforzi dell'periodo.

TL; DR: allorquando una ufficio è calda affrontare, vale la stento cosicché viene convocazione altrettanto pieno, al raffinato a fine di accalcarsi su operazioni a fine di agglomerazione a fine di calibro preminente.


Leggi di più

Leave a Reply

Sending