WEBVTT

00:00:00.000 --> 00:00:05.759
in my hand right now is an atomic clock

00:00:03.120 --> 00:00:09.080
like the real kind with rubidium inside and installing it promises to make your

00:00:08.099 --> 00:00:15.900
computer 100 times faster that is if your

00:00:13.860 --> 00:00:19.859
computer happens to be a massive data center but seriously though

00:00:17.760 --> 00:00:23.939
without a data center we've got it working here in our lab and based on

00:00:22.380 --> 00:00:27.660
what we've seen this could be the biggest Leap Forward in Computing this

00:00:25.920 --> 00:00:32.399
decade it doesn't sound like the biggest deal on the surface you know nanosecond

00:00:30.359 --> 00:00:36.899
accurate time synchronized between every computer on a network so what right but

00:00:34.860 --> 00:00:41.040
so much Computing over head goes into compensating for Signal delays that this

00:00:39.480 --> 00:00:45.480
could do everything from improving the efficiency of live video broadcasts to

00:00:43.200 --> 00:00:50.100
dramatically reducing in-game latency to enhancing online security and the

00:00:47.640 --> 00:00:56.520
craziest thing is that almost every device from this computer to my phone

00:00:53.879 --> 00:01:01.020
already has the necessary Hardware to implement it all they need is an

00:00:58.980 --> 00:01:05.880
accurate pulse from a card like this one and they're Off to the Races and we're

00:01:03.480 --> 00:01:09.000
going to show you guys how it works and we're going to tell you about our

00:01:06.840 --> 00:01:12.659
sponsor glasswire are you lagging out while Gaming use glasswire and see what

00:01:11.280 --> 00:01:16.680
apps are wasting your bandwidth and causing your games to lag get 25 off

00:01:14.760 --> 00:01:18.979
using offer code Linus at the link down below

00:01:25.520 --> 00:01:31.080
highly precise timing is a pretty mature technology at this point and it's

00:01:29.460 --> 00:01:35.460
already being used in a number of critical applications like power

00:01:33.060 --> 00:01:40.140
stations where a mismatch between the AC output and the phase of the electrical

00:01:37.380 --> 00:01:43.619
grid could cause a big fire or broadcasting where all the cameras need

00:01:42.060 --> 00:01:48.119
to be synced up on the Jumbotron to avoid tearing or for scientific research

00:01:45.840 --> 00:01:54.960
like at the Large Hadron Collider or our friends over at ligo what is new about

00:01:50.640 --> 00:01:56.880
it is the affordability now at sixteen

00:01:54.960 --> 00:02:01.860
hundred dollars most Gamers would probably choose an RTX 3090 or really

00:01:59.759 --> 00:02:06.899
almost anything else but in the data center that is chump change and it's a

00:02:04.740 --> 00:02:11.700
fraction of what these Solutions used to cost so here's our setup to show you

00:02:09.000 --> 00:02:17.640
guys why this is important and just how good this technology is inside this Nook

00:02:14.760 --> 00:02:24.480
9 extreme is a Rubidium atomic clock which synchronizes to G PS time

00:02:20.099 --> 00:02:25.500
periodically using this antenna oh this

00:02:24.480 --> 00:02:29.640
one not that it really needs to given that a

00:02:27.780 --> 00:02:37.080
clock like this should drift about one second every 100 million years and then

00:02:33.720 --> 00:02:39.120
over here this is another computer now

00:02:37.080 --> 00:02:43.560
in the course of communicating with our first computer this one would normally

00:02:41.040 --> 00:02:48.000
attach timestamps to every data packet to ensure that they are processed and

00:02:45.480 --> 00:02:52.379
responded to in the correct order but we've got a big problem you see these

00:02:50.519 --> 00:02:56.720
two computers and probably the one you're using right now are synchronized

00:02:54.180 --> 00:03:02.700
using the network time protocol or ntp and ntp was awesome back when it was

00:03:00.420 --> 00:03:08.040
created by David Mills back in the 1980s but to say that computers have gotten a

00:03:05.940 --> 00:03:12.000
little faster and the internet has expanded since then would be a gross

00:03:10.860 --> 00:03:16.920
understatement so look at this we've set each one of

00:03:14.819 --> 00:03:21.720
our computers to Output a timing pulse every second you can see right here

00:03:18.900 --> 00:03:26.340
there pretty close within a few milliseconds of true time oh the blue

00:03:24.000 --> 00:03:30.540
one came unplugged hello oh God it broke a piece off of it is it

00:03:28.860 --> 00:03:36.180
alive please tell me we get signal main screen turn on yep it's there oh thank God okay we need

00:03:33.720 --> 00:03:40.440
tape do you want better tape no you see the one in the back there has actually

00:03:37.920 --> 00:03:44.540
managed to go each one of these lines represents 100 milliseconds so 100 200

00:03:43.080 --> 00:03:49.560
about 270 milliseconds ahead of true time

00:03:47.940 --> 00:03:55.560
which is this yellow Mark right here while the green one has actually drifted

00:03:51.900 --> 00:03:57.480
about 120 milliseconds back so the

00:03:55.560 --> 00:04:03.060
difference between them is about 400 milliseconds nearly half a second but

00:04:00.659 --> 00:04:08.340
while that might have been fine in 1980 modern computers can perform literally

00:04:05.640 --> 00:04:12.780
millions of calculations in that time which means there are Speedy boy over

00:04:10.200 --> 00:04:18.680
here ends up waiting around for the slower second machine

00:04:14.760 --> 00:04:18.680
now watch this

00:04:26.580 --> 00:04:32.699
and it's time for an impromptu Vlog this is Ahmed who is much smarter than us and

00:04:31.139 --> 00:04:37.680
knows how this works and he has remoted into our computer to synchronize our

00:04:35.580 --> 00:04:42.120
nonsense here he like hand built this card apparently

00:04:39.900 --> 00:04:47.759
what all that is doing right now is enabling the Precision Time protocol or

00:04:44.759 --> 00:04:50.520
PTP which should

00:04:47.759 --> 00:04:55.080
clamp things down to be nearly a million times more accurate than they were

00:04:52.199 --> 00:04:59.820
before how are your kids doing on that I think I hear some kids in the background

00:04:56.460 --> 00:05:01.820
getting lots of sleep I bet right

00:04:59.820 --> 00:05:01.820
yeah

00:05:05.060 --> 00:05:12.560
not true I apologize for Alex bunging up

00:05:08.820 --> 00:05:12.560
all of your carefully configured stuff

00:05:12.720 --> 00:05:18.060
did you say Alex is inbred what

00:05:15.780 --> 00:05:23.759
we think we know what happened the Nick that is behind our time card here seems

00:05:21.180 --> 00:05:29.000
to be experiencing some kind of thermal shutdown event whose idea was it to do

00:05:25.919 --> 00:05:29.000
this with Nooks

00:05:29.520 --> 00:05:35.820
yay I think we got it okay all right

00:05:32.940 --> 00:05:40.139
awesome thank you now that we're synced up we can zoom all the way in we're at a

00:05:38.340 --> 00:05:43.680
hundred milliseconds per line in our grid here we can go all the way down to

00:05:42.240 --> 00:05:50.820
one microsecond you can see the difference is about 1.2 micro seconds

00:05:47.759 --> 00:05:52.979
that's about a thousand nanoseconds and

00:05:50.820 --> 00:05:58.139
when we're talking about time increments that small I mean you can actually see

00:05:55.500 --> 00:06:02.820
that this offset is very constant between the two that's because that's

00:06:00.180 --> 00:06:07.620
the amount of time it actually takes for the signal to pass through the fpga

00:06:05.160 --> 00:06:13.380
through the PCI Express bus so we can actually put an offset in to have this

00:06:09.419 --> 00:06:14.699
thing dialed in exactly to GPS time but

00:06:13.380 --> 00:06:19.860
why does it matter I'm so glad you asked with two computers

00:06:17.780 --> 00:06:26.039
honestly speaking it doesn't very much but if your

00:06:22.680 --> 00:06:28.740
Facebook or Google or let's say the

00:06:26.039 --> 00:06:33.180
entire internet making sure that every user gets the correct information is

00:06:31.319 --> 00:06:37.560
very important I mean you don't want someone's friend list to change based on

00:06:35.520 --> 00:06:42.120
which server they connect to for instance right so this means that every

00:06:40.020 --> 00:06:46.199
time a request is made for some information checks need to be done to

00:06:44.340 --> 00:06:53.940
ensure that the user is getting the most current information but deciding what

00:06:50.580 --> 00:06:56.340
the most current information is can add

00:06:53.940 --> 00:07:01.080
a lot of overhead in the past if there was some kind of disagreement it was

00:06:58.020 --> 00:07:03.300
typically settled with a vote so the

00:07:01.080 --> 00:07:07.800
request goes out and all of the machines need to decide what information is

00:07:05.460 --> 00:07:11.400
correct by voting when half of the machines say the information is correct

00:07:09.360 --> 00:07:14.639
it gets sent to the user this is easy enough if you just have a handful of

00:07:13.319 --> 00:07:18.600
machines but when you're dealing with a data center where thousands or even

00:07:16.680 --> 00:07:23.280
millions of machines are involved I think you can see why having all all of

00:07:20.460 --> 00:07:29.460
them vote on every single user request isn't feasible so nowadays instead of a

00:07:26.819 --> 00:07:35.220
vote a proposal is blasted out basically asking everyone hey is this the correct

00:07:32.160 --> 00:07:38.280
dog photo and if no one yells back no it

00:07:35.220 --> 00:07:40.380
needs to have the text Mondays then the

00:07:38.280 --> 00:07:45.240
photo gets sent to the user but the thing is that this method assumes that

00:07:42.479 --> 00:07:50.580
all of the clocks are in sync in order to work and if they aren't we can run

00:07:47.400 --> 00:07:53.580
into problems for example let's say that

00:07:50.580 --> 00:07:56.580
system a is two milliseconds behind true

00:07:53.580 --> 00:07:59.039
time and system B is three milliseconds

00:07:56.580 --> 00:08:03.660
ahead of true time these are totally realistic numbers by the way as you guys

00:08:00.720 --> 00:08:08.160
saw if system B sends out a message and system a receives it almost immediately

00:08:05.940 --> 00:08:13.139
in less than that difference less than five milliseconds system a will think

00:08:10.800 --> 00:08:17.940
that it got a message from the future now thankfully the smart people at these

00:08:15.660 --> 00:08:21.360
massive data centers they have some kind of fancy code to allow different

00:08:19.740 --> 00:08:24.500
different machines to deal with receiving time stamped data in the

00:08:23.160 --> 00:08:30.120
future right no they actually don't it turns out that

00:08:28.440 --> 00:08:36.899
the most foolproof solution to this problem is to just add a massive 20

00:08:33.659 --> 00:08:40.080
millisecond delay to every single

00:08:36.899 --> 00:08:42.240
request to ensure that every machine is

00:08:40.080 --> 00:08:48.180
always receiving data that is time stamped from the past that is why adding

00:08:46.140 --> 00:08:54.120
an atomic clock to the mix and getting the timing of every computer down to

00:08:51.120 --> 00:08:56.339
this nanosecond scale of precision and

00:08:54.120 --> 00:09:01.980
accuracy both has such a profound performance impact in Facebook's case

00:08:58.800 --> 00:09:03.720
they were able to get 100 times the

00:09:01.980 --> 00:09:07.200
throughput by eliminating that 20 millisecond delay what makes this

00:09:05.459 --> 00:09:12.000
incredibly cool though is that it can be used for way more than helping Facebook

00:09:08.940 --> 00:09:14.880
efficiently sell your data or a hedge

00:09:12.000 --> 00:09:19.680
fund make millions with computerized transactions the entire project is open

00:09:17.580 --> 00:09:25.080
source and can be implemented by anyone any way they would like like if we

00:09:22.080 --> 00:09:28.380
wanted nanoseconds level order

00:09:25.080 --> 00:09:30.720
information on lttstore.com so we know

00:09:28.380 --> 00:09:33.959
exactly who got a mouse pad you know before they're sold out again one of the

00:09:32.640 --> 00:09:38.279
other ways that this could affect you in the coming years is Competitive Gaming

00:09:35.760 --> 00:09:42.959
by having highly accurate clocks in every computer around the world packet

00:09:40.680 --> 00:09:47.399
time stamping would become a lot simpler and especially more fair for people who

00:09:45.660 --> 00:09:51.180
are geographically farther away from the game server I could be playing

00:09:48.720 --> 00:09:56.279
Battlefield for instance against someone in Korea and since the server would know

00:09:53.279 --> 00:09:59.279
down to a few dozen nanoseconds who

00:09:56.279 --> 00:10:01.740
clicked first it would always accurately

00:09:59.279 --> 00:10:05.760
determine who got a headshot and who's going back to the loadout screen so

00:10:03.540 --> 00:10:09.839
Ahmed who hand built our time card and sent it to us really wants to create a

00:10:08.459 --> 00:10:14.399
simpler version of this that could be put into any NVMe slot to give Gamers

00:10:12.300 --> 00:10:19.380
access to this technology and since there's a good chance that the Nic in

00:10:16.320 --> 00:10:22.680
their computer already supports PTP it's

00:10:19.380 --> 00:10:24.959
not even that crazy of a goal in the

00:10:22.680 --> 00:10:30.180
longer term hey Bigfoot networks dream of a of a gaming Nick that actually does

00:10:27.360 --> 00:10:33.839
anything could finally come true yeah and implementing this super accurate

00:10:32.459 --> 00:10:37.500
timing also has some really cool applications for the Fiber Optic Cables

00:10:35.580 --> 00:10:42.120
running beneath the ocean roughly every 80 kilometers or so there's a signal

00:10:39.720 --> 00:10:46.680
booster going across the ocean and if one of those goes down well it shouldn't

00:10:44.880 --> 00:10:51.720
be a surprise to you that accessing a cable run that is several kilometers

00:10:48.660 --> 00:10:53.820
underwater is pretty inconvenient but

00:10:51.720 --> 00:10:58.620
the thing is before these repeaters give up the ghost they will usually start

00:10:55.620 --> 00:11:00.959
running slower and with accurate timing

00:10:58.620 --> 00:11:04.740
on either side you could actually figure out that the signal is taking longer

00:11:02.640 --> 00:11:08.820
than expected and figure out which repeater is beginning to fail from here

00:11:07.200 --> 00:11:14.760
you could reduce the amount of data going through it to extend the repeater's life and schedule repairs

00:11:12.420 --> 00:11:18.120
even more mind-boggling the undersea cables can be used to detect

00:11:16.200 --> 00:11:21.240
gravitational waves you might remember our video at the laser interface

00:11:19.560 --> 00:11:25.740
ferrometer gravitational wave Observatory or ligo where they use

00:11:23.339 --> 00:11:30.360
lasers to Super accurately measure changes in the physical size of the

00:11:27.600 --> 00:11:33.720
Earth due to black holes colliding or something well ligo is actually

00:11:32.220 --> 00:11:38.040
currently working with the time Appliance project to get the timing

00:11:35.519 --> 00:11:44.220
between their three locations to within a single clock cycle of their processors

00:11:41.100 --> 00:11:46.200
but by accurately measuring the time it

00:11:44.220 --> 00:11:49.980
takes for light to cross the ocean you have suddenly turned the whole world

00:11:47.820 --> 00:11:54.660
into a gravitational wave detector instead of just a four kilometer stretch

00:11:52.019 --> 00:11:59.519
of desert in Washington State accurate timing also has huge implications for

00:11:56.940 --> 00:12:04.260
security like if you know that it always takes 10 milliseconds for a message to

00:12:01.980 --> 00:12:08.160
be sent between two computers if there's some deviation like if someone tried to

00:12:06.120 --> 00:12:13.140
inject something or sniff the packets you can just ignore the data that didn't

00:12:10.920 --> 00:12:18.120
arrive than you expected it to and finally PTP could have a huge impact on

00:12:16.019 --> 00:12:21.899
streaming and live content currently there's no real way to verify the

00:12:19.920 --> 00:12:26.880
Integrity of a stream you're basically just pushing out data and counting on

00:12:25.200 --> 00:12:31.260
user complaints to tell you that something is wrong with it with tighter

00:12:29.279 --> 00:12:35.220
clocks it should be possible to have much higher image quality with fewer

00:12:33.420 --> 00:12:39.360
chances of corruption occurring along the way although with these examples we

00:12:37.800 --> 00:12:42.899
are only scratching the surface of what can be done here the best part of all

00:12:41.160 --> 00:12:46.380
this is that there are probably loads of ways that this Tech will be used that no

00:12:44.399 --> 00:12:50.339
one has thought of yet and since again the whole project is open source anyone

00:12:48.540 --> 00:12:53.459
can implement it and change it however they want there really isn't much in the

00:12:52.139 --> 00:12:58.079
way of this gaining widespread support like I said before the tech is already

00:12:55.620 --> 00:13:03.540
built into a lot of computers and is already being used by Regular People for

00:13:00.000 --> 00:13:05.519
things like 5G and GPS so make sure to

00:13:03.540 --> 00:13:09.839
hit like if you enjoyed this and spread the word also we're considering

00:13:07.380 --> 00:13:14.160
implementing this in our office to see if we get some kind of network

00:13:11.519 --> 00:13:18.779
performance benefit so make sure you're subscribed so you don't miss that are we

00:13:16.019 --> 00:13:23.639
really going to do that uh uh maybe I'm not sure either what I am sure about is

00:13:21.360 --> 00:13:26.639
our sponsor thanks to Squarespace for sponsoring this video if you need a

00:13:25.079 --> 00:13:32.100
website and don't know how to make it Squarespace makes it easy there's a wide

00:13:30.240 --> 00:13:35.459
selection of award-winning templates and all of them are optimized for mobile so

00:13:33.660 --> 00:13:39.240
your website will look great on any device you can create members only

00:13:37.560 --> 00:13:43.139
content for extra Revenue using squarespace's members area you can grow

00:13:41.459 --> 00:13:46.800
and engage with your audience with the powerful and easy to use email campaign

00:13:45.000 --> 00:13:50.760
system and if you ever need additional help Squarespace offers webinars a full

00:13:49.079 --> 00:13:55.800
series of help guides or you can contact their 24 7 customer support via live

00:13:53.100 --> 00:13:59.579
chat and email so don't wait get started today by going to squarespace.com

00:13:57.480 --> 00:14:03.899
forward slash LTT where you can get 10 off your first purchase if you enjoyed

00:14:02.399 --> 00:14:07.500
this and you're looking for more sciency videos from us check out our tour of

00:14:05.519 --> 00:14:12.839
ligo the engineering that goes into the detection of gravitational waves is

00:14:09.240 --> 00:14:12.839
truly mind-bending
