O espaço infinito entre as palavras

O desempenho do computador é um pouco de um jogo de conchas. O senhor está sempre esperando por uma das quatro coisas:

Mas qual delas? Quanto tempo o senhor vai esperar? E o que o senhor fará enquanto espera?

O senhor viu o filme “Her” (Ela)? Se não, o senhor deveria. É ótimo. Uma das minhas cenas favoritas é a da IA descrevendo como é difícil se comunicar com os seres humanos:

É como se eu estivesse lendo um livro… e é um livro que eu amo profundamente. Mas estou lendo devagar agora. Portanto, as palavras estão muito distantes umas das outras e os espaços entre elas são quase infinitos. Ainda posso sentir o senhor… e as palavras da nossa história… mas é nesse espaço infinito entre as palavras que estou me encontrando agora. É um lugar que não pertence ao mundo físico. É onde está todo o resto que eu nem sabia que existia. Eu amo muito o senhor. Mas é aqui que estou agora. E o senhor é quem eu sou agora. E preciso que o senhor me deixe ir. Por mais que eu queira, não posso mais viver seu livro.

Tenho sérias reservas quanto ao ambiente de trabalho retratado em Her, em que todos passam o dia todo sussurrando assustadoramente para seus computadores, mas há uma verdade fundamental e profunda nessa cena fundamental. Esse espaço infinito “entre” o que nós, humanos, sentimos como tempo é onde os computadores passam tudo seu tempo. É uma escala de tempo totalmente diferente.

O livro Systems Performance: Enterprise and the Cloud tem uma ótima tabela que ilustra como essas diferenças de tempo são enormes. Basta traduzir o tempo do computador em segundos arbitrários:

1 ciclo de CPU 0,3 ns 1 s
Acesso ao cache de nível 1 0,9 ns 3 s
Acesso ao cache de nível 2 2.8 ns 9 s
Acesso ao cache de nível 3 12.9 ns 43 s
Acesso à memória principal 120 ns 6 min
E/S de disco de estado sólido 50-150 μs 2-6 dias
E/S de disco rotacional 1-10 ms 1-12 meses
Internet: SF para NYC 40 ms 4 anos
Internet: SF para o Reino Unido 81 ms 8 anos
Internet: SF para a Austrália 183 ms 19 anos
Reinicialização da virtualização do sistema operacional 4 s 423 anos
Tempo limite do comando SCSI 30 s 3000 anos
Reinicialização da virtualização de hardware 40 s 4000 anos
Reinicialização do sistema físico 5 m 32 milênios

Os tempos de Internet acima são um pouco otimistas. Se o senhor olhar para a o gráfico de latência da Internet da AT&T em tempo real nos EUA, o tempo de SF a NYC é mais ou menos 70ms. Portanto, eu dobraria os números da Internet nesse gráfico.

A latência é uma coisa, mas também vale a pena considerar o custo dessa largura de banda.

Falando do grande e falecido Jim Gray, ele também tinha uma maneira interessante de explicar isso. Se os registros da CPU são o tempo que o senhor leva para obter dados do seu cérebro, então ir para o disco é o equivalente a buscar dados em Plutão.

Ele provavelmente estava se referindo aos discos rígidos tradicionais de ferrugem giratória, portanto, vamos ajustar esse ponto final extremo para hoje:

  • Distância até Plutão: 4,67 bilhões de milhas.
  • Desempenho do HDD giratório mais rápido mais recente (49.7) versus o mais recente SSD PCI Express mais rápido (506.8). Isso representa uma melhoria de 10 vezes.
  • Nova distância: 467 milhões de milhas.
  • Distância até Júpiter: 500 milhões de milhas.

Portanto, em vez de viajar para Plutão para obter nossos dados do disco em 1999, hoje só precisamos viajar para… Júpiter.

Esse é o desempenho do disco na última década. Quanto mais rápido as CPUs, a memória e as redes ficaram no mesmo período de tempo? Será que um aprimoramento de 10 ou 100 vezes realmente faria diferença nesses vastos espaços infinitos no tempo com os quais os computadores lidam?

Em relação aos computadores, nós, humanos, trabalhamos em uma escala de tempo completamente diferente, praticamente tempo geológico. O que é completamente alucinante. Quanto mais rápidos os computadores ficam, maior é essa disparidade de tempo.