Teknologi terapan di reruntuhan demam blockchain atau manfaat praktis dari distribusi sumber daya

Dalam beberapa tahun terakhir, feed berita dibanjiri dengan pesan tentang jenis baru jaringan komputasi terdistribusi yang muncul entah dari mana, memecahkan (atau lebih tepatnya, mencoba memecahkan) berbagai macam masalah - membuat kota menjadi pintar, menyelamatkan dunia dari hak cipta. pelanggar atau sebaliknya, secara diam-diam mentransfer informasi atau sumber daya, melarikan diri dari kendali negara di satu wilayah atau lainnya. Terlepas dari bidangnya, mereka semua memiliki sejumlah fitur umum karena fakta bahwa bahan bakar untuk pertumbuhan mereka adalah algoritma dan teknik yang muncul ke publik selama booming cryptocurrency dan teknologi terkait baru-baru ini. Mungkin setiap artikel ketiga tentang sumber daya khusus pada waktu itu memiliki kata "blockchain" di judulnya - diskusi tentang solusi perangkat lunak baru dan model ekonomi menjadi tren dominan selama beberapa waktu, dengan latar belakang bidang penerapan sistem komputasi terdistribusi lainnya. diturunkan ke latar belakang.

Pada saat yang sama, para visioner dan profesional melihat esensi utama dari fenomena ini: komputasi terdistribusi besar-besaran, yang terkait dengan pembangunan jaringan dari sejumlah besar peserta yang berbeda dan heterogen, telah mencapai tingkat perkembangan baru. Cukup dengan membuang topik-topik hype dari kepala Anda dan melihat subjek dari sisi lain: semua jaringan ini, yang dikumpulkan dari kumpulan besar, yang terdiri dari ribuan peserta heterogen yang terisolasi, tidak muncul dengan sendirinya. Penggemar gerakan kripto mampu memecahkan masalah kompleks sinkronisasi data dan distribusi sumber daya dan tugas dengan cara baru, yang memungkinkan untuk mengumpulkan peralatan dalam jumlah besar dan menciptakan ekosistem baru yang dirancang untuk memecahkan satu masalah yang terfokus secara sempit.

Tentu saja, hal ini tidak luput dari perhatian tim dan komunitas yang terlibat dalam pengembangan komputasi terdistribusi gratis, dan proyek-proyek baru tidak akan lama lagi akan datang.
Namun, meskipun ada peningkatan signifikan dalam jumlah informasi yang tersedia tentang perkembangan di bidang pembangunan jaringan dan bekerja dengan peralatan, pencipta sistem yang menjanjikan harus memecahkan masalah yang serius.

Yang pertama, betapapun anehnya kedengarannya, adalah masalah memilih arah.

Arahnya mungkin benar, atau mungkin mengarah pada jalan buntu - tidak ada jalan keluar dari hal ini; pasokan peramal terpusat ke komunitas TI masih terlambat. Namun pilihan harus dibuat agar tidak jatuh ke dalam perangkap tradisional yaitu tim mengambil area yang terlalu luas dan mencoba membuat proyek komputasi terdistribusi umum non-khusus sejak awal. Tampaknya ruang lingkup pekerjaannya tidak begitu menakutkan, sebagian besar kita hanya perlu menerapkan perkembangan yang ada: menggabungkan node ke dalam jaringan, mengadaptasi algoritma untuk menentukan topologi, bertukar data dan memantau konsistensinya, memperkenalkan metode untuk memeringkat node dan menemukan konsensus, dan, tentu saja, buat saja bahasa kueri Anda sendiri serta seluruh bahasa dan lingkungan komputasi. Gagasan tentang mekanisme universal sangat menggoda dan terus-menerus muncul di satu area atau lainnya, tetapi hasil akhirnya masih merupakan salah satu dari tiga hal: solusi yang dibuat ternyata merupakan prototipe terbatas dengan sekumpulan β€œToDos” yang ditangguhkan. ” di simpanan, atau menjadi monster yang tidak dapat digunakan yang siap menyeret siapa pun yang menyentuh β€œrawa Turing” yang busuk, atau mati dengan selamat karena angsa, udang karang, dan tombak, yang menarik proyek ke arah yang tidak dapat dipahami, hanya memaksakan diri secara berlebihan.

Jangan ulangi kesalahan bodoh dan pilih arah yang memiliki cakupan tugas yang jelas dan cocok untuk model komputasi terdistribusi. Anda dapat memahami orang-orang yang mencoba melakukan semuanya sekaligus - tentu saja, ada banyak pilihan. Dan banyak hal yang terlihat sangat menarik baik dari sudut pandang penelitian dan pengembangan dan pembangunan, maupun dari sudut pandang ekonomi. Dengan menggunakan jaringan terdistribusi, Anda dapat:

  • Latih jaringan saraf
  • Memproses aliran sinyal
  • Hitung struktur protein
  • Render adegan XNUMXD
  • Simulasikan hidrodinamika
  • Uji strategi perdagangan untuk bursa saham

Agar tidak terbawa suasana menyusun daftar hal-hal menarik yang diparalelkan dengan baik, kami akan memilih rendering terdistribusi sebagai topik selanjutnya.

Render terdistribusi sendiri tentu saja bukanlah hal baru. Toolkit render yang ada telah lama mendukung distribusi beban di berbagai mesin; tanpa ini, hidup di abad kedua puluh satu akan sangat menyedihkan. Namun, Anda tidak boleh berpikir bahwa topik tersebut telah dibahas secara luas, dan tidak ada yang bisa dilakukan di sana - kami akan mempertimbangkan masalah mendesak yang terpisah: membuat alat untuk membuat jaringan render.

Jaringan rendering kami adalah kombinasi node yang perlu melakukan tugas rendering dengan node yang memiliki sumber daya komputasi bebas untuk memproses rendering. Pemilik sumber daya akan menghubungkan stasiun mereka ke jaringan render untuk menerima dan menjalankan tugas render menggunakan salah satu mesin render yang didukung jaringan. Dalam hal ini, penyedia tugas akan bekerja dengan jaringan sebagai cloud, mendistribusikan sumber daya secara independen, memantau kebenaran eksekusi, manajemen risiko, dan masalah lainnya.

Oleh karena itu, kami akan mempertimbangkan untuk membuat kerangka kerja yang mendukung integrasi dengan sekumpulan mesin render populer dan berisi komponen yang menyediakan alat untuk mengatur jaringan node heterogen dan mengelola alur tugas.

Model ekonomi dari keberadaan jaringan semacam itu tidak terlalu penting, jadi kami akan mengambil skema awal yang serupa dengan yang digunakan dalam perhitungan dalam jaringan mata uang kripto - konsumen sumber daya akan mengirimkan token ke pemasok yang melakukan pekerjaan rendering. Jauh lebih menarik untuk memahami properti apa yang harus dimiliki suatu kerangka kerja, yang untuknya kita akan mempertimbangkan skenario utama interaksi antara peserta jaringan.

Ada tiga sisi interaksi dalam jaringan: penyedia sumber daya, penyedia tugas, dan operator jaringan (alias pusat kendali, jaringan, dll. dalam teks).

Operator jaringan menyediakan aplikasi klien atau citra sistem operasi kepada penyedia sumber daya dengan serangkaian perangkat lunak yang diterapkan, yang akan diinstal pada mesin yang sumber dayanya ingin disediakan, dan akun pribadi yang dapat diakses melalui antarmuka web, memungkinkannya untuk mengatur parameter akses ke sumber daya dan mengelola lanskap servernya dari jarak jauh: mengontrol parameter perangkat keras, melakukan konfigurasi jarak jauh, reboot.

Ketika sebuah node baru terhubung, sistem manajemen jaringan menganalisis peralatan dan parameter akses yang ditentukan, memberi peringkat, memberikan peringkat tertentu, dan menempatkannya dalam daftar sumber daya. Di masa depan, untuk mengelola risiko, parameter aktivitas node akan dianalisis, dan peringkat node akan disesuaikan untuk memastikan stabilitas jaringan. Tidak ada yang akan senang jika adegan mereka dikirim untuk dirender pada kartu kuat yang sering macet karena terlalu panas?

Pengguna yang perlu merender sebuah adegan dapat melakukan dua cara: mengunggah adegan tersebut ke repositori jaringan melalui antarmuka web, atau menggunakan plugin untuk menghubungkan paket pemodelannya atau menginstal renderer ke jaringan. Dalam hal ini, kontrak cerdas dimulai antara pengguna dan jaringan, kondisi standar penyelesaiannya adalah pembuatan hasil penghitungan adegan oleh jaringan. Pengguna dapat memantau proses penyelesaian tugas dan mengelola parameternya melalui antarmuka web akun pribadinya.

Tugas dikirim ke server, di mana volume adegan dan jumlah sumber daya yang diminta oleh pemrakarsa tugas dianalisis, setelah itu total volume didekomposisi menjadi beberapa bagian yang disesuaikan untuk perhitungan jumlah dan jenis sumber daya yang dialokasikan oleh jaringan. . Ide umumnya adalah visualisasi dapat dipecah menjadi banyak tugas kecil. Mesin memanfaatkan hal ini dengan mendistribusikan tugas-tugas ini ke beberapa penyedia sumber daya. Cara paling sederhana adalah dengan merender bagian-bagian kecil dari pemandangan yang disebut segmen. Ketika setiap segmen sudah siap, tugas lokal dianggap selesai, dan sumber daya berpindah ke tugas luar biasa berikutnya.

Oleh karena itu, tidak ada bedanya bagi penyaji apakah penghitungan dilakukan pada satu mesin atau pada jaringan banyak stasiun komputasi individual. Render terdistribusi hanya menambahkan lebih banyak inti ke kumpulan sumber daya yang digunakan untuk suatu tugas. Melalui jaringan, ia menerima semua data yang diperlukan untuk merender suatu segmen, menghitungnya, mengirimkan kembali segmen tersebut, dan melanjutkan ke tugas berikutnya. Sebelum memasuki kumpulan jaringan umum, setiap segmen menerima sekumpulan metainformasi yang memungkinkan node pelaksana memilih tugas komputasi yang paling sesuai untuk mereka.

Masalah segmentasi dan distribusi perhitungan harus diselesaikan tidak hanya dari sudut pandang optimalisasi waktu pelaksanaan, tetapi juga dari sudut pandang penggunaan sumber daya dan penghematan energi secara optimal, karena efisiensi ekonomi jaringan bergantung pada hal ini. . Jika solusi tidak berhasil, akan lebih disarankan untuk memasang penambang pada node atau mematikannya agar tidak menimbulkan kebisingan dan tidak membuang-buang listrik.

Namun, mari kita kembali ke prosesnya. Ketika tugas diterima, kontrak pintar juga terbentuk antara kumpulan dan node, yang dijalankan ketika hasil tugas dihitung dengan benar. Berdasarkan hasil pemenuhan kontrak, node dapat menerima hadiah dalam satu atau lain bentuk.

Pusat kendali mengontrol proses pelaksanaan tugas, mengumpulkan hasil perhitungan, mengirimkan yang salah untuk diproses ulang dan memberi peringkat antrian, memantau batas waktu standar penyelesaian tugas (agar tidak terjadi segmen terakhir tidak diambil oleh simpul mana pun).

Hasil perhitungannya melalui tahap pengomposisian, setelah itu pengguna menerima hasil rendering, dan jaringan dapat menerima reward.

Dengan demikian, komposisi fungsional kerangka lanskap yang dirancang untuk membangun sistem rendering terdistribusi muncul:

  1. Akun pengguna pribadi dengan akses web
  2. Kit perangkat lunak untuk instalasi pada node
  3. Menurut sistem kendali:
    • Subsistem kontrol akses
    • Rendering subsistem dekomposisi tugas
    • Subsistem distribusi tugas
    • Subsistem pengomposisian
    • Lanskap server dan subsistem manajemen topologi jaringan
    • Subsistem logging dan audit
    • Subsistem pakar pembelajaran
    • Istirahatkan API atau antarmuka lain untuk pengembang eksternal

Bagaimana menurutmu? Pertanyaan apa yang diangkat oleh topik tersebut dan jawaban apa yang Anda minati?

Sumber: www.habr.com

Tambah komentar