Terkait Keamanan Terkait Keamanan Wawancara CTO: Penganggaran dalam hitungan nanodetik | Computer Weekly

Wawancara CTO: Penganggaran dalam hitungan nanodetik | Computer Weekly

Wawancara CTO: Penganggaran dalam hitungan nanodetik | Computer Weekly


Andrew Phillips telah bekerja di broker LMAX selama 17 tahun dan saat ini menjabat sebagai kepala bagian teknologi (CTO) perusahaan tersebut. Anggarannya diukur dalam milidetik.

Meskipun latensi ujung ke ujung yang dijamin LMAX untuk perdagangan frekuensi tinggi adalah 50 ms, waktu maksimum aplikasi apa pun yang diizinkan untuk berjalan adalah delapan nanodetik. Ketika anggaran diukur dalam nanodetik, bahkan potensi penundaan terkecil pun memiliki dampak negatif.

“Pelanggan kami adalah perusahaan dagang besar dan mereka menginginkan sesuatu yang berjalan sangat cepat dan sangat deterministik,” kata Phillips.

“Kami akan menguji berbagai kabel Twinax dan menggunakan koneksi langsung daripada menggunakan serat optik, karena hanya dibutuhkan waktu yang kecil namun terukur, yakni nanodetik, untuk mengubah sinyal listrik menjadi cahaya, mengirimkannya melalui serat, lalu mengubahnya kembali menjadi sinyal listrik.”

Pendekatan berbeda terhadap kinerja perangkat lunak

Ketika perusahaan mulai membangun platformnya pada tahun 2010, Phillips mengatakan bahwa praktik yang umum adalah menggunakan metodologi waterfall dan mengembangkan perangkat lunak menggunakan bahasa pemrograman C++. Namun, bursa LMAX dibangun menggunakan metodologi agile dan diprogram dalam Java.

“Menggunakan teknik agile dan Java, dengan ekosistem pengujiannya yang sangat kaya, dianggap cukup aneh,” katanya.

Tidak seperti C++, di mana kode aplikasi pertama kali dikompilasi menjadi program kode mesin yang kemudian berjalan langsung pada mikroprosesor (prosesor), Java adalah bahasa pemrograman yang menggunakan kompilasi runtime. Ini berarti kode Java dikompilasi “saat itu juga” saat program berjalan.

Java juga menawarkan manajemen memori bawaan yang disebut “pengumpulan sampah”, yang dapat memengaruhi kinerja program, seperti yang dijelaskan Phillips: “Kami memiliki banyak pertanyaan canggung dari calon pelanggan tentang lonjakan latensi dan pengumpulan sampah.

“Kami mulai dengan JDK standar pada tahun 2013. Yang kami sadari adalah bahwa Java memiliki warisan – Java dirancang untuk dekoder dan paling menyenangkan ketika Anda memberinya memori sekitar 4GB.”

Menurut Phillips, memori sistem yang melebihi 4GB berarti waktu pengumpulan sampah menjadi tidak stabil dari perspektif latensi. “Kami tidak ingin mengorbankan ekspresi atau kecepatan penulisan di Java, serta ekosistem pengujian, yang telah benar-benar mendukung banyak keberhasilan kami.”

Perusahaan tersebut telah menggunakan platform Java dari sistem Azul untuk mengatasi keterbatasan memori pada lingkungan Java standar. “Saat itu, jika saya memiliki server dengan memori 64 Gb, menghindari pengumpulan sampah sangatlah penting,” imbuh Phillips.

Azul, katanya, hanya melakukan pengumpulan sampah sebagai pilihan terakhir. “Ini sangat bagus bagi kami karena kami sedang menurunkan latensi pertukaran kami, pada saat itu, dari satu milidetik ke titik sekarang, yaitu 50 mikrodetik.”

Dan dalam rentang waktu 50 mikrodetik itu, banyak hal yang terjadi. “50 mikrodetik adalah waktu yang dibutuhkan dari saat pesanan dikirimkan di tepi jaringan kami, hingga diproses, dicocokkan, lalu konfirmasi dikirim kembali,” imbuh Phillips.

Wawancara CTO: Penganggaran dalam hitungan nanodetik | Computer Weekly

“Selain menjadi pengembang kompiler profesional, saya menantang programmer yang sangat baik untuk melakukan hal yang sama baiknya dengan kompiler dalam hal optimasi”

Andrew Phillips, LMAX

Dengan jendela 50 mikrodetik ini, kode Java hanya memiliki waktu delapan nanodetik untuk dijalankan karena sebagian besar latensi terjadi saat transaksi melewati infrastruktur jaringan ke server. Phillips yakin Java, sebagai bahasa pemrograman, lebih baik dalam mengoptimalkan kode dibandingkan dengan seseorang yang membuat kode secara manual untuk performa tinggi.

“Saya berasal dari latar belakang C, C++, dan Fortran, dan Anda cenderung beralih ke bahasa assembler agar segala sesuatunya berjalan lebih cepat. [Java] “agak berlawanan dengan intuisi,” katanya.

Menurut Phillips, mikroprosesor modern sangat rumit sehingga jika seorang pengembang memilih untuk menulis sesuatu dalam C atau C++, kode tersebut dioptimalkan hanya untuk arsitektur prosesor “target” yang dikonfigurasikan pengembang dalam alat kompiler C atau C++.

“Salah satu keuntungan menjalankan Java adalah dioptimalkan untuk prosesor yang Anda gunakan,” katanya. “Itu bisa jadi sangat penting. Selain menjadi pengembang kompiler profesional, saya menantang programmer yang sangat hebat untuk melakukan hal yang sama baiknya dengan kompiler dalam hal pengoptimalan.”

Biasanya, seorang programmer C++ akan menggunakan kompiler C++ pada mesin pengembangan mereka untuk mengompilasi aplikasi, dengan menggunakan prosesor server sebagai arsitektur target. Hal ini kemudian diperbaiki, dan aplikasi hanya dioptimalkan untuk prosesor server tertentu.

Namun, seperti yang ditunjukkan Phillips, lingkungan pengembangan dan pengujian mungkin merupakan beberapa generasi arsitektur prosesor di balik server produksi. Lingkungan pementasan, tempat kode dipindahkan sebelum masuk ke produksi, juga cenderung menjalankan prosesor server generasi lama.

Java mampu mengoptimalkan kode pada waktu proses, sehingga dapat memanfaatkan fitur akselerasi kode yang tersedia pada perangkat keras target tempat kode tersebut dijalankan.

“Karena saya agak tidak percaya, saya agak skeptis bahwa Java dapat melakukan ini,” kata Phillips. “Saya menjadi yakin setelah mengikuti kompetisi pemrograman antara seorang programmer Java yang ahli dan saya sendiri, yang menulis dalam bahasa C dan assembly. Saya tidak dapat mengalahkan kecepatan program Java.”

Ketika ditanya tentang tantangan terbesar yang dihadapinya, Phillps berkata: “Hal terbesar yang memperlambat saya di Java adalah kemampuan mengakses banyak memori dengan latensi deterministik yang sangat rendah. Ini adalah salah satu tantangan rekayasa utama kami. Masalah terbesar yang saya hadapi saat ini mungkin adalah latensi memori.”

Terobosan teknologi latensi rendah

Ke depannya, Phillips mengatakan ia terkesan dengan peluang dalam latensi perangkat keras yang dijanjikan oleh teknologi CXL. Compute Express Link (CXL) memungkinkan konektivitas memori langsung antara berbagai perangkat keras.

“CXL memiliki potensi besar untuk mengubah sepenuhnya apa yang kami lakukan karena perbedaan antara bus memori, bus periferal, dan lapisan jaringan mulai kabur menjadi satu,” katanya.

Namun, meskipun CXL disebut-sebut sebagai teknologi yang akan mengubah arsitektur perangkat keras komputasi dalam hitungan bulan, teknologi ini belum mendapatkan perhatian. Dengan mengambil analogi antara CXL dan daya fusi, Phillips menambahkan: “Selalu 10 tahun. Ide melakukan panggilan prosedur jarak jauh melalui jaringan CXL sangat menarik.”

Bagi Phillips, CXL menawarkan cara untuk mengatasi overhead protokol jaringan tradisional. “Semuanya berjalan pada IP UDP atau IP TCP, yang [networking] protokol yang dirancang pada tahun 1960-an dan awal 70-an ketika modem dial-up [connectivity] adalah teknologi terkini.”

Meskipun ia mengakui “upaya rekayasa yang fantastis” yang telah memungkinkan protokol ini berkembang hingga ke titik sekarang dengan ethernet 25 gigabit, Phillips berkata: “Akan lebih baik dan membuat segalanya jauh lebih cepat jika kita tidak memiliki beban enkapsulasi IP.”

Pekerjaan berkelanjutan untuk mengeksplorasi seni kemungkinan ini membantu LMAX memproses transaksi perdagangan dengan latensi sesedikit mungkin yang dimungkinkan oleh hukum fisika, memberi perusahaan penyangga, dan memungkinkannya menangani throughput yang sangat tinggi.

Misalnya, mengingat volatilitas besar di pasar mata uang kripto yang terjadi tahun lalu yang menyebabkan bursa mata uang kripto anjlok, Phillips berkata: “Kami tidak anjlok. Malah, kami melihat lonjakan volume yang besar karena orang-orang saling mengalihkan risiko di bursa kami.”

Meskipun volume perdagangan tidak mendekati jumlah maksimum yang dapat ditangani LMAX, ia mengatakan perusahaan tersebut mampu menangani perdagangan untuk seluruh pasar kripto dan – menurut Phillips – masih ada banyak ruang gerak.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Post