Orchestration of Ethernet Services in Software-Defined and Flexible Heterogen...
High Performance Data Transfer with UDT: 3x Winner of Bandwidth Challenge
1. UDT:
High
Performance
Data
Transfer
Presented
by
Dan
Sullivan
10/22/2013
2. The
UDT
Team
• Dr.
Yunhong
Gu
–
Architect
and
lead
developer,
an
expert
in
high
speed
networking
and
high
performance
compuKng.
Was
a
research
scienKst
at
UIC,
is
now
a
soOware
engineer
at
Google
• Dr.
Robert
Grossman
–
CRIO
of
the
U
of
C’s
Center
for
Research
InformaKcs
3. Overview
• 3x
winner
of
the
SuperCompuKng
Bandwidth
challenge
• Uses
UDP
for
data
transfer
with
internal
reliability
and
congesKon
control
mechanisms
• With
emerging
bandwidth
technologies
(i.e.
10Gb/s
and
40Gb/s
Ethernet,
a
new
transmission
protocol
is
needed
to
address
scalability
problems
with
bandwidth
delay
product
(BDP).
4. Bandwidth
Delay
Product
Overview
• DefiniKon
–
the
mulKplicaKon
of
a
data
link’s
capacity
and
it
end-‐to-‐end
delay.
• Result
is
a
amount
of
bits
or
bytes,
data
that
is
on
the
circuit
that
has
been
transmiZed
but
not
acknowledged.
• BDP
is
the
expression
of
full
circuit
uKlizaKon
5. TCP:
Reliable
Streaming
Unicast
• But
first,
UDP:
It’s
not
reliable,
so,
we’re
not
going
to
talk
any
more
about
it.
• TCP
uses
AIMD
for
its
windowing
algorithm
(addiKve
increase,
mulKplicaKve
decrease).
Increases
window
size
by
1
per
RTT,
halves
it
when
packet
loss
is
detected.
• This
means
for
high
bandwidth
networks
it
takes
a
long
Kme
to
reach
the
maximum
network
throughput.
• It
is
difficult
to
realize
the
full
throughput
of
TCP
on
a
network
that
has
packet
loss.
7. In
an
HPC
Environment,
We’d
Want
Something
That
Looks
Like
This:
8. UDT
Protocol
SpecificaKons,
ObjecKves,
Design
CharacterisKcs:
– Designed
for
distributed
data
intensive
applicaKons
using
high
speed
networks
– Easy
to
deploy
– Open
Source
(BSD
&
LGPLv2
licenses)
– A
configurable
protocol
framework
and
custom
congesKon
control
algorithm
– Consists
of
a
C++
library
(containing
the
UDT
API).
Currently
on
version
4.
– Portable
(works
on
Linux,
Windows,
OS
X,
and
BSD).
9. UDT
vs.
TCP
Reliable
Stream
Socket
AbstracKon
udt.sourceforge.net
UDP
Socket
API
ApplicaKons
TCP
Socket
API
ApplicaKons
ApplicaKons
UDT
UDT
Socket
10. • sendfile/recvfile
for
efficient
file
transfer
• sendmsg/recvmsg:
messaging
with
parKal
reliability
• selectEx:
a
more
efficient
version
of
select()
• kept
the
tradiKonal
UNIX
socket
interface
to
lessen
the
learning
curve
for
developers
• Under
certain
condiKons,
applicaKons
can
be
ported
from
TCP
to
UDT
without
any
modificaKons.
• Uses
a
AIMD
control
algorithm
proporKonal
to
bandwidth
with
a
random
decrease
between
1/2
and
1/8.
• Exposes
variables
related
to
congesKon
control,
allows
modificaKon
through
callbacks
The
UDT
API
14. • InstantWebP2P/node-‐hZpp
Run
HTTP
over
UDP
with
Node.js
for
P2P
Web.
• AhemoFS
• EMC
VPLEX
• nabto
• iTwin
• Kaseya
• GroupLogic
MassTransit
7.0
• Center
for
ComputaKon
and
Technology,
Louisiana
State
University
CCT,
LSU
uses
UDT
for
data
transmission
in
high
speed
interacDve
and
distributed
visualizaDon
and
exploraDon
of
very
large
dataset.
• HSCP
by
InsKtute
for
Molecular
Science,
Japan
HSCP
(Hybrid
scp)
is
a
high
speed
variant
of
the
"scp"
file
copy
tool
developed
to
help
transferring
large
chemistry
research
data
at
IMS
Japan
and
is
now
made
open
source
to
public
users.
• Naval
Research
Laboratory
Naval
Research
Laboratory
(NRL)
implemented
the
UDT
protocol
on
FPGA
and
used
it
to
support
long
distance
infiniband.
Technical
ImplementaKons
of
UDT
udt.sourceforge.net