HackerTrans
TopNewTrendsCommentsPastAskShowJobs

xtacy

no profile record

Submissions

[untitled]

1 points·by xtacy·3 mesi fa·0 comments

Performance Speed Limits (2019)

travisdowns.github.io
18 points·by xtacy·11 mesi fa·1 comments

A whirlwind tutorial on creating teensy ELF executables for Linux (1999)

muppetlabs.com
59 points·by xtacy·anno scorso·17 comments

comments

xtacy
·3 mesi fa·discuss
Curious - what’s this court filing?
xtacy
·6 mesi fa·discuss
> QUIC is not bad, but there are places where it either does not work at all or works too slow.

Curious: in your experience where does QUIC work bad/slow?
xtacy
·11 mesi fa·discuss
Are there good public examples of well designed APIs that have stood the test of time?
xtacy
·11 mesi fa·discuss
Is it GBps (gigabytes per second) or Gbps (giga bits per second)? I see mixed usage in this comment thread so I’m left wondering what it actually is.

The article is consistent and uses Gigabytes.
xtacy
·anno scorso·discuss
We do have a model. That’s statistical physics.

Any standard course goes over various derivations of classical physics laws (Newtonian dynamics) from quantum mechanics.
xtacy
·2 anni fa·discuss
Yep, such ideas have been around. But congestion is a fundamental problem. Admission control is the only way to ensure there is no congestion collapse.

The technical issue is that you would need global arbitration to ensure that the _goodput_ (useful bytes delivered) is optimal. With training across 32k GPUs and more these days, global arbitration to ensure the correct packets are prioritised is going to be very difficult. If you are sending more traffic than the receiver's link capacity, packets _will_ get dropped, and it's suboptimal to transmit those dropped packets into the network as they waste link capacity elsewhere (upstream) within the network.
xtacy
·2 anni fa·discuss
In principle, with perfect knowledge of flows at any given instant, you can assign credits/rate-of-transmission for each flow to prevent congestion. But, in practice this is somewhat nuanced to build, and there are various tradeoffs to consider: what happens if the flows are so short that coordinating with a centralised scheduler incurs a latency overhead that is comparable to the flow duration? There's been research to demonstrate that one can strike a sweet spot, but I don't think it's practical nor has it been really deployed in the wild. And of course, this scheduler has to be made reliable as it's a single point of failure.

Such ideas are, however, worth revisiting when the workload is unique enough (in this case, it is), and the performance gains are so big enough...
xtacy
·2 anni fa·discuss
OP is referring to "Credit based flow control", which is a way to ensure a sender does not overwhelm a receiver with more data than it can handle.

Usually, this is line-rate, but if the other side is slow for whatever reason (say the consumer is not draining data), you wouldn't want the sender to continue sending data.

If you also have N hosts sending data to 1 host, you would need some way of distributing the bandwidth among the N hosts. That's another scenario where the credit system comes. Think of it as an admission control for packets so as to guarantee that no packets are lost. Congestion control is a looser form of admission control that tolerates lossy networks, by retransmitting packets should they be lost.
xtacy
·2 anni fa·discuss
It's also a bit odd that they do not implement congestion control. Congestion control is fundamental unless you only have point-to-point data transfers, which is rarely the case. All-reduce operation during training requires N to 1 data transfer. In these scenarios the sender needs to control its data transfer rates so as to not overwhelm not just the receiver, but also the network... if this is not done, it will cause congestion collapse (https://en.wikipedia.org/wiki/Network_congestion#:~:text=ser...).
xtacy
·5 anni fa·discuss
I suspect that the web server's CPU usage will be pretty high (almost 100%), so C-state tuning may not matter as much?

EDIT: also, RSS happens on the NIC. RFS happens in the kernel, so it might not be as effective. For a uniform request workload like the one in the article, statically binding flows to a NIC queue should be sufficient. :)
xtacy
·7 anni fa·discuss
I think you meant to say -- Type 1 is a false positive, and type 2 is a false negative.