
mi chiamo Kyle Foucault e ora sono qui
va a Copenaghen nel 2012 con Ritchie e
chiusura creativa e tonica e prima
di tutto ciò per cui voglio ringraziarti
facendo questo intenzionalmente e poi forse
solo per iniziare e mi piacerebbe che tu
magari dire alcune cose su di te
e presentarsi o persone che
non ti conosco già bene ok ero a
lo sviluppatore del software era stato per quasi
25 anni ora e ha lavorato su una varietà di
diversi tipi di sistemi e costruiti
chiusura nel 2007 o finito in
consegnato nel 2007 e che è tolto
e sì dopo quello che sono stato
lavorare sull’atomico è quello che faccio
sì, sono personalmente vicino a voi signore e
Sono vicino al tuo sistema e al mio team
non è così decollare nella tua nota chiave
sei sfuggito si dovremmo chiamare il
valori di valore e quindi passare alla chiusura
e quelle cose così così solo per le persone
che non erano alla chiacchierata, giusto?
dimmi qual è la differenza tra
programmazione e valore orientati al luogo
programmazione orientata sicuramente penso posto
programmazione orientata si avvicinò al
fatto che sai quando abbiamo iniziato
definizione dei linguaggi di programmazione e
i computer dei database erano davvero piccoli
e abbiamo dovuto occuparci della memoria e
archiviazione esplicitamente e abbiamo avuto molto
risorse limitate e dovevi farlo
usali come luoghi molto specificatamente
e poi abbiamo sviluppato astrazioni che
non staremmo toccando gli indirizzi di memoria
e settori del disco più ma quelli
le astrazioni non riguardavano davvero
le informazioni che stavano per tenerci
dal toccare gli indirizzi di memoria e questo
settori che sono luoghi ma
che le sfide che affrontiamo adesso
stanno scrivendo sistemi di informazione
davvero bisogno di mantenere le informazioni
e fatti e davvero tutti i fatti
e quindi il più grande fondamentale
la differenza è che sai con un posto nuovo
le informazioni sostituiscono il vecchio e con
valuta le nuove informazioni richiede nuove
deposito sai lo spazio yeah e tu
non cambiare le cose tu
e in Utopia conosci diversi punti
e uno è che questo ha senso nel
processo locale ha senso tra
elabora la comunità in diversi sistemi
e ha senso di archiviazione sì così se
ci concentriamo solo sulla cosa in corso
e ovviamente se il tuo lavoro è stato te
sapere ispirato alla chiusura e poi al movimento
che ottiene la nostra chiusura così come si chiude
il tuo supporto per la tua programmazione
chiusure praticamente sul valore
programmazione orientata sai che penso a
un paio di cose molto criticamente uno è
tutte le strutture dati principali sono
immutabile quindi abbiamo capito
parte inoltre tutte le collezioni
sono anche immutabili ed efficienti così
perché queste strutture dati persistenti
e così questo ti dà una sorta di a
fondamento per il tuo valore orientato
programmazione e penso che sia il sì
quindi è la stella così una delle domande
che potrebbe apparire quando hai detto
sul prestito è questo come può essere la pesca
come puoi avere tutti questi miracoli?
cose e tu non sai cambiare
e ti stai facendo delle versioni così tu
pensa a cucinare e cose del genere
così giusto così come funziona all’interno
cultura bene in qualsiasi lingua funzionale
che deve essere assistito da strutture dati
fondamentalmente la risposta e il futuro di
la programmazione è alberi come dati dell’albero
strutturare il tipo di puntellature
efficienti strutture dati immutabili così
quello che succede è una nuova versione di a
struttura dati condivide davvero un sacco di
struttura con il vecchio perché sono
gli alberi devi solo modificarne alcuni
i nodi e poi il resto delle note
essere condivisi e questo significa che è nuovo
le versioni sono efficienti
l’altra cosa chiave che stiamo trovando
alberi è quello che è quella struttura
anche quello che avremo bisogno di supporto
parallelismo che avanza così in un albero
programmazione orientata è una specie di
conosci il futuro
sì e pericoloso non è anche questo
dove voglio passare a perché sei
non è forse il più frequente del mondo
blogger ma conosco con lui l’ultimo
mese che hai fatto di nuovo in nuovi post di blog sì
e quelli erano
quale chiamata riduce hmm e come funziona
riguardano le strutture dati più vicine e
questa nozione di valori così sono i riduttori
una sorta di ortogonali intendo che indovino il
uno l’ altro punta sull’essere di chiusura
valutato per il linguaggio di programmazione è
che mantiene le funzioni fuori dal
valori in modo che funzioni a cui applicare le funzioni
valori e sono in qualche modo ortogonali a
l’un l’altro e così i riduttori è in realtà
principalmente sul lato funzionale delle cose
sai come si fa a mappare a
funzione attraverso la collezione come fare
si filtrano i valori del filtro di raccolta
di una collezione e quindi i riduttori
quadro è un modo di fare quelle cose
per tipo di specificare le ricette per
facendoli e non in realtà fisicamente
realizzandoli finché non ne hai davvero bisogno
per realizzare risultati in modo da poter dire altro
collezione mi piacerebbe avere questo
raccolta dove ogni numero era
incrementato o solo i numeri pari
sono stati mantenuti e questo in realtà non funziona
qualsiasi lavoro quando dici che tipo di dà
tu la ricetta per una collezione che ha
ogni numero incrementato e numero pari
viene rimosso e quindi si aspetta cosa
a cosa si chiama l’operazione di riduzione
fare quel lavoro e questo significa che tutti i
quelle attività possono essere combinate così se nel
fine vuoi prendere quella raccolta di
incrementato i numeri pari e aggiungili
tutti insieme che sarebbero in calo
operazioni che li aggiungono tutti insieme
e poi solo quando li stavi aggiungendo
tutti insieme con il filtraggio e un
l’incremento non è accaduto, quindi è un
vantaggio di efficienza rispetto ad altri
tecniche per fare ciò che hanno
altre proprietà ma quando non ne hai bisogno
quelle proprietà come la pigrizia sarebbe mmm
essere una proprietà che si scambia per arrivare
prendere questo altro approccio sicuro ma il
cosa critica del modo in cui la biblioteca
è questo definendo questi
ricette in un modo indipendente
sia la rappresentazione dei dati
struttura e l’ordine di eseguirlo
significa che possono essere parallelizzati e
quindi la struttura dei riduttori ti dà entrambi
un nuovo modo di definire cose come la mappatura
e filtro e in che modo è soggetto a
parallelizzazione
c’è un modo per dire fold
invece di ridurre potresti dire fold e
quel processo accadrà in parallelo da
una forcella voglio entrare in quel sì
prima di entrare mi piacerebbe così
mi sembra che ci sia questo
essere una sorta di relazione con
relazione tra riduttori e a
nozione di pigrizia perché questo è Mason
sembra anche che non ti stia realizzando
conoscere i risultati dell’intervista mm-hmm e non
produrre qualcosa prima di te
ne abbiamo bisogno, quindi c’è un modo per farlo
confrontare questi due approcci questo questo
quindi sì, entrambi ritardano il lavoro fino a quando
alcune volte successive si pigrizia
fondamentalmente esegui le operazioni una alla volta
tempo ed è orientato verso a
percorso sequenziale attraverso il
collezione così quando definisci la mappa o
filtro come una funzione pigra è una specie di
una ricetta ma è una ricetta che
incorpora il fatto che hai intenzione di
consumare i risultati uno alla volta da
l’ inizio e i riduttori astratti
in realtà fai meno sai che presumono
meno e loro e promettono meno loro
non presumere che l’elaborazione
accadrà in modo sequenziale e loro
in particolare dicono di non avere nulla a riguardo
quelli che presumono ciò e anche loro
non richiedere che la raccolta si incontri
l’elaborazione attraverso una sorta di
un’interfaccia sequenziale in realtà lasciata
la collezione fa la navigazione così da
essere indipendente dall’ordine di
operazioni e raccolta della navigazione
loro realmente specificano meno e da
specificando meno a cui sono soggetti
parallelizzazione d’altra parte a
la riduzione parallela è essenzialmente un
operazione desiderosa quando effettivamente fa
succede che succede su tutto sì sì
un calcolo pigro può essere parzialmente
consumato ma una riduzione è sempre a posto
quindi ora è visto come complementi yeah e
quindi ora a me sembra che la chiusura lo farà
avere alcune due serie di nomi simili
operazione
e quello che è matematico quello che non fai
sappi che poi conosci i riduttori
la mappa va bene così questo sarà primario
in alcuni sensi stanno per abbracciare
ammissione l’utilizzo di questo riduce
wrangling è un’ottimizzazione o è
il recinto di matematica primario così sai
sono complementari, penso che ci siano
certamente sicuramente casi d’uso distinti
se tu se avessi intenzione di consumare il
tutto il risultato quindi è chiaro
i produttori sono ottimizzati
pigrizia perché in realtà non lo sei
sfruttando la pigrizia, allora sei proprio tu
andando a consumare l’intero risultato e e
se è un ricordo diciamo che è il
altri criteri che potrebbero trascinarlo
alla pigrizia se non ha fatto se fosse, se
tutto ciò che è lo stesso allora riduce è un
ottimizzazione del corso riducendo e
la parallelizzazione è sempre una specie di
ottimizzazione ma penso che sia una specie di
fondamentale che sia disponibile per
programmi perché altrimenti non lo faranno
veloce o chiunque altro nuovo computer sì
quindi è stato molto importante nel design
di riduttori che i programmi risultanti
avere la stessa forma giusta, ecco dove
tutto quello che sai è uno dei grandi vantaggi
proposizione è in aggiunta all’accesso a
il parallelismo è il fatto che da a
punto di vista logico ciò che hai chiesto
capita è mat questa funzione finita
filtrando questa raccolta ciò che sai
questo criterio e questo è lo stesso
operazione logica in entrambi i casi e così via
quello e ha la stessa salsa di forma è
davvero importante perché poi puoi
rendere queste altre decisioni ortogonali
ho intenzione di consumare i risultati
in modo incrementale e forse non tutti
loro ti portano verso la pigrizia o
So che le mie fonti o i risultati si adatteranno
memoria quindi ho bisogno di usare la pigrizia o
quelli non sono veri e quindi posso
scegli l’altro ma il mio programma lo farà
cambiano strutturalmente quindi non è come un
biforcazione del mondo come te
per prendere questa decisione critica presto
sì, non è affatto così io
penso che entrambi saranno usati penso
sono veramente complementari e
passare tra le curiosità del film sì
non è che tu sostituirai il nucleo
mappa con la nostra mappa in qualsiasi senso intendo
no no no Voglio dire che le persone potrebbero allearne alcune
avvocati
perché sono solo loro vogliono tutto
il tempo, ma io sono così se questo significa da
un punto di vista pratico e sarebbe
essere solo uno spazio dei nomi sostitutivo e tu
può correggere esattamente forse solo più velocemente
sì, hai avuto la sensazione di quanto velocemente
se lo mantieni solo sequenziale
l’introduzione di sufficiente parallelismo si fa
avere in questa posizione si questo è
in realtà meno memoria allocazione e
dipende da quanto è grande il tuo lavoro per step
giusto così l’allocazione ha qualche overhead se
hai avuto un grande lavoro da fare per il tuo passo
l’allocazione come percentuale del
tutto il lavoro è piccolo e tu in realtà
non importa, sì, ma se tu avessi un molto
piccolo lavoro per cose come Inc come plus
o Inc poi hai dominato dal
costo di allocazione e quindi ogni passo di
quello di una multi-operazione come filtro di
la mappa di qualcosa aggiunge un’allocazione a
il primo passo della catena in modo da poterne vedere due
tre quattro X a seconda di quanto profondo
che è stato annidato tra solo sequenziale
tra i riduttori e la pigrizia va bene
sembra grandioso sì e credo anche
perché le persone stanno facendo performance
okay, così hai menzionato la forcella / join si può
dici un po ‘di come funziona la fortuna
persone che non sanno per certo
l’idea alla base di fork / join è che tu
voglio fare qualche operazione è uno è
un pezzo di lavoro che vuoi fare così
stiamo parlando di parallelismo qui o
battere la concorrenza giusto così è
parallelismo hai un lavoro da fare e
vuoi lasciare il rispetto che hai
più di un processore dividendolo
up e fork / join è letteralmente una divisione
e conquistare il tipo di strategia c’è a
libreria per JVM chiamata fork / join
è un quadro che loro chiamano e questo
implementa una strategia di creazione di a
pool di lavoratori che svolgeranno il lavoro
e
il tuo programma deve semplicemente alimentarlo
prendendo il loro lavoro da fare
dividendolo in metà a destra presentando
ogni metà come lavoro e poi in modo ricorsivo
quelle metà si divideranno in
metà e così diventano abbastanza piccoli
tu dici che non ha senso dividerti
questo lo farò solo in sequenza e
in modo tale da formare questa grande pila di lavoro per
la coda e poi la coda usa questo
approccio al soffitto di lavoro per essere sicuri
che come i fili diventano inutili in ritardo
sapere che hanno fatto quello che dovrebbero
per farlo saltano su e rubano il lavoro
è stato assegnato ad altri thread in modo che
collettivamente possono ottenere l’intero lavoro
fatto e corrono tutti indipendenti
discussioni ed è un bel modo di fare
parallelismo
specialmente quando potenzialmente il tuo lavoro a
il livello delle foglie non è uniforme, quindi se tu
se lavori come divisa puoi quasi farlo
questo te stesso non intendi il mio lavoro
uniforme prende la stessa quantità di
sforzo per fare ogni sub suono giusto okay
quindi se io se sapessi che so di averne quattro
core che potrei semplicemente dividere in 4 posti di lavoro
e basta, ma se io se alcuni di quelli
i lavori secondari potrebbero richiedere più tempo di altri
poi un ragazzo finirebbe e lui solo
non ho niente da fare e lavoro rubare mix
significa che anche se non sei uniforme
lavoro o meno il tuo albero non ha il
stessa profondità o solo alcuni lavori sono più grandi
e alcuni lo sai così la cosa bella
su fork / join sei isolato da
dovendo preoccuparmi di questo mmm
tipo di esso si compone bene lo sai e così
l’albero che abita ha un
forme particolari su di esso immagino che
questa è la relazione con la struttura di
giusto così o hai un albero o te
sarò costretto a costruirti abrogato
sì al fine di alimentare forcella / unirsi a voi
averli sempre sì chiudi i tuoi dati
strutture o tutti gli alberi, quindi questo significa
così puoi ripetere che hai detto te
l’ ho menzionato prima ma puoi ripetere
come la forcella / giuntura entra tramite riduttori a destra
giusto così è la libreria dei riduttori
come definisci il fondamentale
operazioni di raccolta come la mappa e
filtrare in termini di queste trasformazioni
di ridurre le funzioni e ridurre
funzione che si usa per la produzione di te
sapere che la chiusura tradizionale si riduce
il processo sequenziale che hai visto erano i
le prime due cose e aggiungili insieme
poi prendere il risultato e aggiungerlo alla
la prossima cosa e che sai ridurre o
pieno di sinistra lì così una volta che hai detto
il modo in cui definisco la mappa è modificando
più sai in ogni passo e il modo
trovare il filtro sta modificando quello in ciascuno
passo allora lo hai modificato
funzione che potresti ridurre con
sequenzialmente o potresti fare ciò che
riduce la chiamata alle chiamate di biblioteca che è
essenzialmente logicamente come ridurre il
collezione ma non lo fa
un solo passaggio da sinistra a destra lo promette
dice che stiamo andando dividere la collezione
su e fare riduzioni in parallelo sul
sub segmenti e quindi se il risultato di
piega è la stessa come un risultato di esso
ridotto ma ma piega rende l’impianto idraulico
di MapReduce
Mi dispiace per fork / join disponibile e
tipo di accessibile a te perché
riconosce il fatto che quello che sei
andando a fare è dividere il tuo compito
e poi alla fine arriva al punto
il fondo dove non stai andando
dividere più e quello che dice è
quel lavoro in basso è in realtà a
tradizionale riduzione del lavoro solo adesso
riducendo solo una sottosezione yeah e
quindi i risultati di tutte quelle riduzioni
devono essere combinati in modo diverso dalla riduzione
che prende solo una singola funzione che
è usato per fare operazioni a coppie
piega prende sia la funzione di riduzione
che è usato per fare operazioni a coppie
in basso e una funzione di combinazione
che è usato per prendere quei risultati e
unirli insieme alle parti superiori
dell’albero per darvi un unico risultato
giusto e così a volte si stanno combinando
funzione della funzione di riduzione del
come con plus che sarebbe in a
caso e puoi lasciare la combinazione
funziona fuori sì altre volte potresti
costruire collezioni e poi volere
combinarli in un modo particolare e
nel qual caso si avrebbe un un unico
diversa funzione di combinazione di te
avere una funzione di riduzione e quindi non c’è
una libreria funzionale chiamata full of cat
questo fa un po ‘di riduzione
che crea una collezione per ogni nodo e
allora prende solo quelle domande e
fa rapidamente un albero binario da loro
senza alcuna copia sì sì, quando lo farebbe
usate
per funzionare bene gatto folle è il più veloce
modo per ottenere un risultato finale che è anche
una collezione giusta e ovviamente la
la raccolta risultante non ne ha molti
proprietà di raccolta per esempio è
non in realtà un vettore o una mappa, ma lo è
stesso riducibile e pieghevole e vedere
Keable e così potrebbe essere sufficiente
per portarlo nella prossima parte del tuo
calcolo ma la cosa su reale
fai quando fai la piega dopo il lavoro
viene fatto proprio come quando si chiama ridurre
il lavoro così sì sì, se vuoi se
hai bisogno del lavoro per cui essere fatto
esempio forse il risultato della tua cosa
prende una grande collezione che lo rende
più piccolo si sa che si desidera chiamare piega
cappuccio in modo che ciò accada e poi tu
può liberare la moneta grande
si così va bene quindi qual è lo stato è ora
introduce la libreria e commozione cerebrale è
in questo momento è in ufficio, quindi
le persone possono provarlo così alfa 1 5 alfa
è giusto e fork / join stesso era
incorporato in java 7 e i ragazzi che
costruito Doug Lee e la concorrenza
gruppo ha creato una libreria che puoi usare
con Java 6, quindi torna indietro fino a
Java 6 vede Java 6 o sei abituato
avere un 7 in entrambi i modi è possibile utilizzarlo e
è richiesto solo per la piega a destra
quindi questa è la libreria Russell in
l’ approccio al design così sì e abbiamo
molte delle funzioni di raccolta fatte
e tu sai che abbiamo persone che presentano
alcuni degli altri e quindi è fantastico e
allora questa è la chiusura 1 5 hai
tutti i segreti che vuoi andare bene sto cercando
avanti ad usare questo e voglio solo
grazie per l’intervista, certo grazie
va a Copenaghen nel 2012 con Ritchie e
chiusura creativa e tonica e prima
di tutto ciò per cui voglio ringraziarti
facendo questo intenzionalmente e poi forse
solo per iniziare e mi piacerebbe che tu
magari dire alcune cose su di te
e presentarsi o persone che
non ti conosco già bene ok ero a
lo sviluppatore del software era stato per quasi
25 anni ora e ha lavorato su una varietà di
diversi tipi di sistemi e costruiti
chiusura nel 2007 o finito in
consegnato nel 2007 e che è tolto
e sì dopo quello che sono stato
lavorare sull’atomico è quello che faccio
sì, sono personalmente vicino a voi signore e
Sono vicino al tuo sistema e al mio team
non è così decollare nella tua nota chiave
sei sfuggito si dovremmo chiamare il
valori di valore e quindi passare alla chiusura
e quelle cose così così solo per le persone
che non erano alla chiacchierata, giusto?
dimmi qual è la differenza tra
programmazione e valore orientati al luogo
programmazione orientata sicuramente penso posto
programmazione orientata si avvicinò al
fatto che sai quando abbiamo iniziato
definizione dei linguaggi di programmazione e
i computer dei database erano davvero piccoli
e abbiamo dovuto occuparci della memoria e
archiviazione esplicitamente e abbiamo avuto molto
risorse limitate e dovevi farlo
usali come luoghi molto specificatamente
e poi abbiamo sviluppato astrazioni che
non staremmo toccando gli indirizzi di memoria
e settori del disco più ma quelli
le astrazioni non riguardavano davvero
le informazioni che stavano per tenerci
dal toccare gli indirizzi di memoria e questo
settori che sono luoghi ma
che le sfide che affrontiamo adesso
stanno scrivendo sistemi di informazione
davvero bisogno di mantenere le informazioni
e fatti e davvero tutti i fatti
e quindi il più grande fondamentale
la differenza è che sai con un posto nuovo
le informazioni sostituiscono il vecchio e con
valuta le nuove informazioni richiede nuove
deposito sai lo spazio yeah e tu
non cambiare le cose tu
e in Utopia conosci diversi punti
e uno è che questo ha senso nel
processo locale ha senso tra
elabora la comunità in diversi sistemi
e ha senso di archiviazione sì così se
ci concentriamo solo sulla cosa in corso
e ovviamente se il tuo lavoro è stato te
sapere ispirato alla chiusura e poi al movimento
che ottiene la nostra chiusura così come si chiude
il tuo supporto per la tua programmazione
chiusure praticamente sul valore
programmazione orientata sai che penso a
un paio di cose molto criticamente uno è
tutte le strutture dati principali sono
immutabile quindi abbiamo capito
parte inoltre tutte le collezioni
sono anche immutabili ed efficienti così
perché queste strutture dati persistenti
e così questo ti dà una sorta di a
fondamento per il tuo valore orientato
programmazione e penso che sia il sì
quindi è la stella così una delle domande
che potrebbe apparire quando hai detto
sul prestito è questo come può essere la pesca
come puoi avere tutti questi miracoli?
cose e tu non sai cambiare
e ti stai facendo delle versioni così tu
pensa a cucinare e cose del genere
così giusto così come funziona all’interno
cultura bene in qualsiasi lingua funzionale
che deve essere assistito da strutture dati
fondamentalmente la risposta e il futuro di
la programmazione è alberi come dati dell’albero
strutturare il tipo di puntellature
efficienti strutture dati immutabili così
quello che succede è una nuova versione di a
struttura dati condivide davvero un sacco di
struttura con il vecchio perché sono
gli alberi devi solo modificarne alcuni
i nodi e poi il resto delle note
essere condivisi e questo significa che è nuovo
le versioni sono efficienti
l’altra cosa chiave che stiamo trovando
alberi è quello che è quella struttura
anche quello che avremo bisogno di supporto
parallelismo che avanza così in un albero
programmazione orientata è una specie di
conosci il futuro
sì e pericoloso non è anche questo
dove voglio passare a perché sei
non è forse il più frequente del mondo
blogger ma conosco con lui l’ultimo
mese che hai fatto di nuovo in nuovi post di blog sì
e quelli erano
quale chiamata riduce hmm e come funziona
riguardano le strutture dati più vicine e
questa nozione di valori così sono i riduttori
una sorta di ortogonali intendo che indovino il
uno l’ altro punta sull’essere di chiusura
valutato per il linguaggio di programmazione è
che mantiene le funzioni fuori dal
valori in modo che funzioni a cui applicare le funzioni
valori e sono in qualche modo ortogonali a
l’un l’altro e così i riduttori è in realtà
principalmente sul lato funzionale delle cose
sai come si fa a mappare a
funzione attraverso la collezione come fare
si filtrano i valori del filtro di raccolta
di una collezione e quindi i riduttori
quadro è un modo di fare quelle cose
per tipo di specificare le ricette per
facendoli e non in realtà fisicamente
realizzandoli finché non ne hai davvero bisogno
per realizzare risultati in modo da poter dire altro
collezione mi piacerebbe avere questo
raccolta dove ogni numero era
incrementato o solo i numeri pari
sono stati mantenuti e questo in realtà non funziona
qualsiasi lavoro quando dici che tipo di dà
tu la ricetta per una collezione che ha
ogni numero incrementato e numero pari
viene rimosso e quindi si aspetta cosa
a cosa si chiama l’operazione di riduzione
fare quel lavoro e questo significa che tutti i
quelle attività possono essere combinate così se nel
fine vuoi prendere quella raccolta di
incrementato i numeri pari e aggiungili
tutti insieme che sarebbero in calo
operazioni che li aggiungono tutti insieme
e poi solo quando li stavi aggiungendo
tutti insieme con il filtraggio e un
l’incremento non è accaduto, quindi è un
vantaggio di efficienza rispetto ad altri
tecniche per fare ciò che hanno
altre proprietà ma quando non ne hai bisogno
quelle proprietà come la pigrizia sarebbe mmm
essere una proprietà che si scambia per arrivare
prendere questo altro approccio sicuro ma il
cosa critica del modo in cui la biblioteca
è questo definendo questi
ricette in un modo indipendente
sia la rappresentazione dei dati
struttura e l’ordine di eseguirlo
significa che possono essere parallelizzati e
quindi la struttura dei riduttori ti dà entrambi
un nuovo modo di definire cose come la mappatura
e filtro e in che modo è soggetto a
parallelizzazione
c’è un modo per dire fold
invece di ridurre potresti dire fold e
quel processo accadrà in parallelo da
una forcella voglio entrare in quel sì
prima di entrare mi piacerebbe così
mi sembra che ci sia questo
essere una sorta di relazione con
relazione tra riduttori e a
nozione di pigrizia perché questo è Mason
sembra anche che non ti stia realizzando
conoscere i risultati dell’intervista mm-hmm e non
produrre qualcosa prima di te
ne abbiamo bisogno, quindi c’è un modo per farlo
confrontare questi due approcci questo questo
quindi sì, entrambi ritardano il lavoro fino a quando
alcune volte successive si pigrizia
fondamentalmente esegui le operazioni una alla volta
tempo ed è orientato verso a
percorso sequenziale attraverso il
collezione così quando definisci la mappa o
filtro come una funzione pigra è una specie di
una ricetta ma è una ricetta che
incorpora il fatto che hai intenzione di
consumare i risultati uno alla volta da
l’ inizio e i riduttori astratti
in realtà fai meno sai che presumono
meno e loro e promettono meno loro
non presumere che l’elaborazione
accadrà in modo sequenziale e loro
in particolare dicono di non avere nulla a riguardo
quelli che presumono ciò e anche loro
non richiedere che la raccolta si incontri
l’elaborazione attraverso una sorta di
un’interfaccia sequenziale in realtà lasciata
la collezione fa la navigazione così da
essere indipendente dall’ordine di
operazioni e raccolta della navigazione
loro realmente specificano meno e da
specificando meno a cui sono soggetti
parallelizzazione d’altra parte a
la riduzione parallela è essenzialmente un
operazione desiderosa quando effettivamente fa
succede che succede su tutto sì sì
un calcolo pigro può essere parzialmente
consumato ma una riduzione è sempre a posto
quindi ora è visto come complementi yeah e
quindi ora a me sembra che la chiusura lo farà
avere alcune due serie di nomi simili
operazione
e quello che è matematico quello che non fai
sappi che poi conosci i riduttori
la mappa va bene così questo sarà primario
in alcuni sensi stanno per abbracciare
ammissione l’utilizzo di questo riduce
wrangling è un’ottimizzazione o è
il recinto di matematica primario così sai
sono complementari, penso che ci siano
certamente sicuramente casi d’uso distinti
se tu se avessi intenzione di consumare il
tutto il risultato quindi è chiaro
i produttori sono ottimizzati
pigrizia perché in realtà non lo sei
sfruttando la pigrizia, allora sei proprio tu
andando a consumare l’intero risultato e e
se è un ricordo diciamo che è il
altri criteri che potrebbero trascinarlo
alla pigrizia se non ha fatto se fosse, se
tutto ciò che è lo stesso allora riduce è un
ottimizzazione del corso riducendo e
la parallelizzazione è sempre una specie di
ottimizzazione ma penso che sia una specie di
fondamentale che sia disponibile per
programmi perché altrimenti non lo faranno
veloce o chiunque altro nuovo computer sì
quindi è stato molto importante nel design
di riduttori che i programmi risultanti
avere la stessa forma giusta, ecco dove
tutto quello che sai è uno dei grandi vantaggi
proposizione è in aggiunta all’accesso a
il parallelismo è il fatto che da a
punto di vista logico ciò che hai chiesto
capita è mat questa funzione finita
filtrando questa raccolta ciò che sai
questo criterio e questo è lo stesso
operazione logica in entrambi i casi e così via
quello e ha la stessa salsa di forma è
davvero importante perché poi puoi
rendere queste altre decisioni ortogonali
ho intenzione di consumare i risultati
in modo incrementale e forse non tutti
loro ti portano verso la pigrizia o
So che le mie fonti o i risultati si adatteranno
memoria quindi ho bisogno di usare la pigrizia o
quelli non sono veri e quindi posso
scegli l’altro ma il mio programma lo farà
cambiano strutturalmente quindi non è come un
biforcazione del mondo come te
per prendere questa decisione critica presto
sì, non è affatto così io
penso che entrambi saranno usati penso
sono veramente complementari e
passare tra le curiosità del film sì
non è che tu sostituirai il nucleo
mappa con la nostra mappa in qualsiasi senso intendo
no no no Voglio dire che le persone potrebbero allearne alcune
avvocati
perché sono solo loro vogliono tutto
il tempo, ma io sono così se questo significa da
un punto di vista pratico e sarebbe
essere solo uno spazio dei nomi sostitutivo e tu
può correggere esattamente forse solo più velocemente
sì, hai avuto la sensazione di quanto velocemente
se lo mantieni solo sequenziale
l’introduzione di sufficiente parallelismo si fa
avere in questa posizione si questo è
in realtà meno memoria allocazione e
dipende da quanto è grande il tuo lavoro per step
giusto così l’allocazione ha qualche overhead se
hai avuto un grande lavoro da fare per il tuo passo
l’allocazione come percentuale del
tutto il lavoro è piccolo e tu in realtà
non importa, sì, ma se tu avessi un molto
piccolo lavoro per cose come Inc come plus
o Inc poi hai dominato dal
costo di allocazione e quindi ogni passo di
quello di una multi-operazione come filtro di
la mappa di qualcosa aggiunge un’allocazione a
il primo passo della catena in modo da poterne vedere due
tre quattro X a seconda di quanto profondo
che è stato annidato tra solo sequenziale
tra i riduttori e la pigrizia va bene
sembra grandioso sì e credo anche
perché le persone stanno facendo performance
okay, così hai menzionato la forcella / join si può
dici un po ‘di come funziona la fortuna
persone che non sanno per certo
l’idea alla base di fork / join è che tu
voglio fare qualche operazione è uno è
un pezzo di lavoro che vuoi fare così
stiamo parlando di parallelismo qui o
battere la concorrenza giusto così è
parallelismo hai un lavoro da fare e
vuoi lasciare il rispetto che hai
più di un processore dividendolo
up e fork / join è letteralmente una divisione
e conquistare il tipo di strategia c’è a
libreria per JVM chiamata fork / join
è un quadro che loro chiamano e questo
implementa una strategia di creazione di a
pool di lavoratori che svolgeranno il lavoro
e
il tuo programma deve semplicemente alimentarlo
prendendo il loro lavoro da fare
dividendolo in metà a destra presentando
ogni metà come lavoro e poi in modo ricorsivo
quelle metà si divideranno in
metà e così diventano abbastanza piccoli
tu dici che non ha senso dividerti
questo lo farò solo in sequenza e
in modo tale da formare questa grande pila di lavoro per
la coda e poi la coda usa questo
approccio al soffitto di lavoro per essere sicuri
che come i fili diventano inutili in ritardo
sapere che hanno fatto quello che dovrebbero
per farlo saltano su e rubano il lavoro
è stato assegnato ad altri thread in modo che
collettivamente possono ottenere l’intero lavoro
fatto e corrono tutti indipendenti
discussioni ed è un bel modo di fare
parallelismo
specialmente quando potenzialmente il tuo lavoro a
il livello delle foglie non è uniforme, quindi se tu
se lavori come divisa puoi quasi farlo
questo te stesso non intendi il mio lavoro
uniforme prende la stessa quantità di
sforzo per fare ogni sub suono giusto okay
quindi se io se sapessi che so di averne quattro
core che potrei semplicemente dividere in 4 posti di lavoro
e basta, ma se io se alcuni di quelli
i lavori secondari potrebbero richiedere più tempo di altri
poi un ragazzo finirebbe e lui solo
non ho niente da fare e lavoro rubare mix
significa che anche se non sei uniforme
lavoro o meno il tuo albero non ha il
stessa profondità o solo alcuni lavori sono più grandi
e alcuni lo sai così la cosa bella
su fork / join sei isolato da
dovendo preoccuparmi di questo mmm
tipo di esso si compone bene lo sai e così
l’albero che abita ha un
forme particolari su di esso immagino che
questa è la relazione con la struttura di
giusto così o hai un albero o te
sarò costretto a costruirti abrogato
sì al fine di alimentare forcella / unirsi a voi
averli sempre sì chiudi i tuoi dati
strutture o tutti gli alberi, quindi questo significa
così puoi ripetere che hai detto te
l’ ho menzionato prima ma puoi ripetere
come la forcella / giuntura entra tramite riduttori a destra
giusto così è la libreria dei riduttori
come definisci il fondamentale
operazioni di raccolta come la mappa e
filtrare in termini di queste trasformazioni
di ridurre le funzioni e ridurre
funzione che si usa per la produzione di te
sapere che la chiusura tradizionale si riduce
il processo sequenziale che hai visto erano i
le prime due cose e aggiungili insieme
poi prendere il risultato e aggiungerlo alla
la prossima cosa e che sai ridurre o
pieno di sinistra lì così una volta che hai detto
il modo in cui definisco la mappa è modificando
più sai in ogni passo e il modo
trovare il filtro sta modificando quello in ciascuno
passo allora lo hai modificato
funzione che potresti ridurre con
sequenzialmente o potresti fare ciò che
riduce la chiamata alle chiamate di biblioteca che è
essenzialmente logicamente come ridurre il
collezione ma non lo fa
un solo passaggio da sinistra a destra lo promette
dice che stiamo andando dividere la collezione
su e fare riduzioni in parallelo sul
sub segmenti e quindi se il risultato di
piega è la stessa come un risultato di esso
ridotto ma ma piega rende l’impianto idraulico
di MapReduce
Mi dispiace per fork / join disponibile e
tipo di accessibile a te perché
riconosce il fatto che quello che sei
andando a fare è dividere il tuo compito
e poi alla fine arriva al punto
il fondo dove non stai andando
dividere più e quello che dice è
quel lavoro in basso è in realtà a
tradizionale riduzione del lavoro solo adesso
riducendo solo una sottosezione yeah e
quindi i risultati di tutte quelle riduzioni
devono essere combinati in modo diverso dalla riduzione
che prende solo una singola funzione che
è usato per fare operazioni a coppie
piega prende sia la funzione di riduzione
che è usato per fare operazioni a coppie
in basso e una funzione di combinazione
che è usato per prendere quei risultati e
unirli insieme alle parti superiori
dell’albero per darvi un unico risultato
giusto e così a volte si stanno combinando
funzione della funzione di riduzione del
come con plus che sarebbe in a
caso e puoi lasciare la combinazione
funziona fuori sì altre volte potresti
costruire collezioni e poi volere
combinarli in un modo particolare e
nel qual caso si avrebbe un un unico
diversa funzione di combinazione di te
avere una funzione di riduzione e quindi non c’è
una libreria funzionale chiamata full of cat
questo fa un po ‘di riduzione
che crea una collezione per ogni nodo e
allora prende solo quelle domande e
fa rapidamente un albero binario da loro
senza alcuna copia sì sì, quando lo farebbe
usate
per funzionare bene gatto folle è il più veloce
modo per ottenere un risultato finale che è anche
una collezione giusta e ovviamente la
la raccolta risultante non ne ha molti
proprietà di raccolta per esempio è
non in realtà un vettore o una mappa, ma lo è
stesso riducibile e pieghevole e vedere
Keable e così potrebbe essere sufficiente
per portarlo nella prossima parte del tuo
calcolo ma la cosa su reale
fai quando fai la piega dopo il lavoro
viene fatto proprio come quando si chiama ridurre
il lavoro così sì sì, se vuoi se
hai bisogno del lavoro per cui essere fatto
esempio forse il risultato della tua cosa
prende una grande collezione che lo rende
più piccolo si sa che si desidera chiamare piega
cappuccio in modo che ciò accada e poi tu
può liberare la moneta grande
si così va bene quindi qual è lo stato è ora
introduce la libreria e commozione cerebrale è
in questo momento è in ufficio, quindi
le persone possono provarlo così alfa 1 5 alfa
è giusto e fork / join stesso era
incorporato in java 7 e i ragazzi che
costruito Doug Lee e la concorrenza
gruppo ha creato una libreria che puoi usare
con Java 6, quindi torna indietro fino a
Java 6 vede Java 6 o sei abituato
avere un 7 in entrambi i modi è possibile utilizzarlo e
è richiesto solo per la piega a destra
quindi questa è la libreria Russell in
l’ approccio al design così sì e abbiamo
molte delle funzioni di raccolta fatte
e tu sai che abbiamo persone che presentano
alcuni degli altri e quindi è fantastico e
allora questa è la chiusura 1 5 hai
tutti i segreti che vuoi andare bene sto cercando
avanti ad usare questo e voglio solo
grazie per l’intervista, certo grazie
Please follow and like us: