network programming
play

network programming NAT Low latency High throughput (10-100Gbps) - PowerPoint PPT Presentation

Using C# for high performance network programming NAT Low latency High throughput (10-100Gbps) Jonny Shipton CL, University of Cambridge 1 What is a NAT? Reality Alice www.google.co.uk Bob NAT www.bbc.co.uk Cathy 212.58.244.26:80 2


  1. Using C# for high performance network programming NAT Low latency High throughput (10-100Gbps) Jonny Shipton CL, University of Cambridge 1

  2. What is a NAT? Reality Alice www.google.co.uk Bob NAT www.bbc.co.uk Cathy 212.58.244.26:80 2

  3. What is a NAT? Client’s POV Alice www.google.co.uk Bob www.bbc.co.uk Cathy 3

  4. What is a NAT? Server’s POV www.google.co.uk Nathan www.bbc.co.uk 4

  5. Why C#? Verilog C# ✓✓✓ ✓ Performance ✓✓✓ ✓ Scalableto 100Gbps+ Skill base Small Large ✓✓✓  Comfy language features 5

  6. Why C#? Methods LINQ Generics Loops OOP Memory Management Exceptions Concurrency Lambdas Also iterators, properties, inheritance, libraries, dynamic variables, safe expressive type system, … 6

  7. Why C#? Time (mins) to compile and run Hardware Verilog simulation C# 0 5 10 15 20 25 30 35 40 7

  8. Compile C# to Verilog?! Sequential/Synchronous Semantics Concurrent Semantics Kiwi Compile Synthesis C# CIL Verilog Hardware Compile F# 8

  9. Look at the code 9

  10. Look at the code Object wrapping raw data array … Intuitive enum … Property 10

  11. Limitations • No truly dynamic allocation (yet) • Array sizes must be determined statically • Objects can be allocated and used within loops • Library support less mature • Complexity -> longer compile times • No reflection, dynamic invoke, etc. • Clock cycles are more precious, so we want to do more in each one • Asynchronous – Kiwi flattens code 11

  12. Thanks to: Kiwi • Nik Sultana Google “Kiwi compiler” http://www.cl.cam.ac.uk/~djg11/kiwi/ • Salvator Galea http://www.cl.cam.ac.uk/research/srg/han/hprls/orangepath/kiwic.html • David Greaves • Networks-as-a-Service (Naas-project.org) • EPSRC • Kynesim NetFPGA-SUME http://netfpga.org/site/#/systems/1netfpga-sume/details/ 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend