Dalam beberapa tahun terakhir, feed berita telah dibanjiri dengan pesan tentang jenis baru dari jaringan komputasi terdistribusi yang memecahkan (atau lebih tepatnya mencoba untuk menyelesaikan) tugas yang paling beragam - membuat kota pintar, menyelamatkan dunia dari pelanggar hak cipta, atau sebaliknya, secara rahasia mentransfer informasi atau sumber daya, melarikan diri dari - di bawah kendali negara di bidang tertentu. Terlepas dari lingkungannya, mereka semua memiliki sejumlah fitur umum, karena fakta bahwa bahan bakar untuk pertumbuhan mereka adalah algoritme dan teknik yang digunakan massa saat booming cryptocurrency baru-baru ini dan teknologi terkait. Mungkin setiap artikel ketiga tentang sumber daya khusus pada waktu itu dalam judul memiliki kata "blockchain" - diskusi tentang solusi perangkat lunak baru dan model ekonomi untuk beberapa waktu menjadi tren dominan, di mana bidang lain aplikasi sistem komputasi terdistribusi diturunkan ke latar belakang.
Pada saat yang sama, para visioner dan profesional melihat esensi utama dari fenomena ini: komputasi terdistribusi massal terkait dengan membangun jaringan sejumlah besar peserta yang berbeda dan heterogen mencapai tingkat perkembangan yang baru. Sudah cukup untuk membuang topik-topik hype dari kepala Anda dan melihat subjek dari sisi lain: semua jaringan ini, dikumpulkan dari kumpulan besar, yang terdiri dari ribuan peserta yang heterogen terpisah, tidak muncul sendiri. Penggemar gerakan Crypto mampu memecahkan dengan cara baru masalah rumit sinkronisasi data dan alokasi sumber daya dan tugas, yang memungkinkan untuk mengumpulkan massa peralatan yang serupa dan menciptakan ekosistem baru yang dirancang untuk memecahkan satu masalah yang ditargetkan secara sempit.
Tentu saja, ini tidak lulus oleh tim dan komunitas yang terlibat dalam pengembangan komputasi terdistribusi gratis, dan proyek-proyek baru tidak lama datang.
Namun, meskipun ada peningkatan serius dalam jumlah informasi yang tersedia tentang perkembangan di bidang jaringan dan peralatan, pencipta sistem yang menjanjikan harus menyelesaikan masalah serius.
Yang pertama dari mereka, betapapun anehnya kedengarannya, adalah masalah memilih arah
Arahnya bisa benar, bisa mengarah ke jalan buntu - Anda tidak bisa menghindarinya, pengiriman terpusat peramal ke komunitas TI masih terlambat. Tetapi pilihan harus dibuat agar tidak jatuh ke dalam perangkap tradisional bahwa tim mengambil bidang yang terlalu luas dan sejak awal mencoba untuk membuat proyek komputasi terdistribusi non-khusus dengan profil yang luas. Tampaknya bagian depan pekerjaan tidak begitu mengerikan, untuk sebagian besar, Anda hanya perlu menerapkan perkembangan yang ada: satukan node ke dalam jaringan, sesuaikan algoritma untuk menentukan topologi, pertukaran data dan kontrol konsistensi mereka, perkenalkan metode untuk menentukan peringkat node dan menemukan konsensus, dan, tentu saja, hanya buat bahasa permintaan Anda sendiri dan seluruh bahasa dan lingkungan komputasi. Gagasan tentang mekanisme universal sangat menggoda dan terus-menerus muncul dalam satu bidang atau yang lain, tetapi satu dari tiga hasil masih diperoleh: solusi yang dibuat ternyata benar-benar prototipe terbatas dengan sekelompok "ToDo" yang ditangguhkan di tumpukan, atau menjadi monster yang tidak dapat dikelola, siap untuk diseret siapa pun yang menyentuh janin "Turing quagmire", atau mati dengan aman dari kenyataan bahwa angsa, kepiting, dan tombak, menarik ke arah yang tidak dapat dipahami, tercabik-cabik.
Kami tidak akan mengulangi kesalahan bodoh dan memilih arah yang memiliki rentang tugas yang dapat dipahami dan cocok untuk model komputasi terdistribusi. Anda dapat memahami orang-orang yang mencoba melakukan semuanya sekaligus - tentu saja, ada banyak pilihan. Dan banyak terlihat sangat menarik baik dari sudut R&D dan pengembangan, dan dari sudut pandang ekonomi. Menggunakan jaringan terdistribusi, Anda dapat:
- Melatih jaringan saraf
- Memproses stream sinyal
- Hitung struktur protein
- Jadikan adegan 3D
- Simulasikan hidrodinamika
- Uji strategi perdagangan untuk bursa efek
Agar tidak terbawa suasana dengan menyusun daftar hal-hal menarik yang paralel dengan baik, kami akan memilih rendering terdistribusi sebagai topik kami selanjutnya.
Render terdistribusi dalam dirinya sendiri, tentu saja, tidak pernah merupakan fenomena baru. toolkit render yang ada telah lama mendukung distribusi beban di berbagai mesin yang berbeda, tanpanya tanpanya akan agak menyedihkan untuk hidup di abad kedua puluh satu. Namun, Anda tidak boleh berpikir bahwa topik telah digerakkan ke atas dan ke bawah, dan tidak ada yang bisa dilakukan di sana - kami akan mempertimbangkan masalah mendesak yang terpisah: membuat alat untuk membuat jaringan render.
Jaringan rendering yang kami miliki adalah gabungan dari node yang perlu melakukan tugas rendering, dengan node yang memiliki sumber daya komputasi gratis untuk menangani rendering. Pemilik sumber daya akan menghubungkan stasiun mereka ke jaringan rendering untuk menerima dan menjalankan pekerjaan rendering menggunakan salah satu mesin rendering yang didukung jaringan. Pada saat yang sama, penyedia tugas akan bekerja dengan jaringan sebagai cloud yang secara independen mendistribusikan sumber daya, memverifikasi kebenaran eksekusi, dan mengelola risiko dan masalah lainnya.
Dengan demikian, kami akan mempertimbangkan pembuatan kerangka kerja yang harus mendukung integrasi dengan satu set mesin render populer dan berisi komponen yang menyediakan alat untuk mengatur jaringan node heterogen dan mengendalikan aliran tugas.
Model ekonomi untuk keberadaan jaringan seperti itu tidak penting secara fundamental, oleh karena itu, untuk yang pertama kita akan mengambil skema yang mirip dengan yang digunakan dalam perhitungan dalam jaringan cryptocurrency - konsumen sumber daya akan mengirimkan token kepada pemasok yang melakukan pekerjaan rendering. Jauh lebih menarik untuk memahami properti apa yang harus dimiliki suatu kerangka kerja, untuk itu kami akan mempertimbangkan skenario utama untuk interaksi peserta jaringan.
Ada tiga aspek interaksi dalam jaringan: penyedia sumber daya, penyedia tugas, dan operator jaringan (alias pusat kendali, jaringan, dll. Di seluruh teks).
Operator jaringan menyediakan penyedia klien dengan aplikasi klien atau gambar sistem operasi dengan serangkaian perangkat lunak komprehensif yang akan ia instal pada mesin yang sumber dayanya ingin ia sediakan, dan akun pribadi yang dapat diakses melalui antarmuka web, memungkinkannya untuk mengatur parameter akses ke sumber daya dan mengontrol servernya dari jarak jauh. lansekap: mengontrol parameter besi, melakukan konfigurasi jarak jauh, reboot.
Saat menghubungkan node baru, sistem manajemen jaringan menganalisis peralatan dan parameter akses yang ditentukan, memeringkatnya, menetapkan peringkat tertentu, dan menempatkannya dalam register 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 memberikan kartu yang kuat, tetapi sering terlalu panas?
Seorang pengguna yang perlu membuat adegan dapat pergi dalam dua cara: mengunggah adegan ke repositori jaringan melalui antarmuka web atau menggunakan plug-in untuk menghubungkan paket simulasi atau renderer yang diinstal ke jaringan. Dalam hal ini, kontrak pintar dimulai antara pengguna dan jaringan, kondisi standar untuk penyelesaian yang merupakan generasi hasil perhitungan adegan oleh jaringan. Pengguna dapat memantau kemajuan tugas dan mengelola parameternya melalui antarmuka web akun pribadinya.
Tugas tiba di server, di mana volume adegan dan jumlah sumber daya yang diminta oleh inisiator tugas dianalisis, setelah itu total volume didekomposisi menjadi bagian-bagian yang disesuaikan untuk perhitungan jumlah dan jenis sumber daya yang dialokasikan oleh jaringan. Gagasan umum adalah bahwa visualisasi dapat dipecah menjadi banyak tugas kecil. Mesin memanfaatkan ini dengan mendistribusikan tugas-tugas ini di antara beberapa penyedia sumber daya. Cara paling sederhana adalah membuat bagian kecil dari adegan yang disebut segmen. Ketika setiap segmen siap, tugas lokal dianggap selesai, sumber daya berlanjut ke yang berikutnya yang tidak terpecahkan.
Jadi, untuk penyaji tidak ada perbedaan seperti apakah perhitungan dilakukan pada satu mesin atau pada grid dari banyak stasiun komputasi yang terpisah. Render terdistribusi hanya menambahkan lebih banyak core ke kumpulan sumber daya yang digunakan untuk tugas tersebut. Melalui jaringan, ia menerima semua data yang diperlukan untuk merender segmen, menghitungnya, mengirim kembali segmen ini, dan melanjutkan ke tugas berikutnya. Sebelum memasuki kumpulan umum dari jaringan, setiap segmen menerima satu set meta-informasi, yang memungkinkan node yang mengeksekusi untuk memilih tugas komputasi yang paling cocok untuk mereka.
Tugas segmentasi dan distribusi komputasi harus diselesaikan tidak hanya dari sudut pandang mengoptimalkan waktu eksekusi, tetapi juga dari sudut pandang penggunaan sumber daya dan penghematan energi yang optimal, karena efisiensi ekonomi jaringan tergantung pada hal ini. Dalam hal keputusan yang gagal, akan lebih bijaksana untuk mengaktifkan atau mematikan penambang sehingga tidak membuat kebisingan dan tidak membuang-buang listrik.
Tetapi kembali ke proses. Ketika tugas diterima antara kumpulan dan simpul, kontrak pintar juga dibentuk yang dieksekusi ketika hasil tugas dihitung dengan benar. Berdasarkan hasil kontrak, simpul dapat menerima hadiah dalam satu bentuk atau lainnya.
Pusat kontrol memantau proses penyelesaian tugas, mengumpulkan hasil perhitungan, mengirim yang salah untuk memproses ulang dan memberi peringkat antrian, melacak istilah normatif tugas (sehingga tidak terjadi bahwa segmen terakhir tidak dioperasikan oleh simpul apa pun).
Hasil perhitungan melewati tahap pengomposisian, setelah itu pengguna menerima hasil rendering, dan jaringan dapat menerima hadiah.
Dengan demikian, komposisi fungsional kerangka bentang alam, yang dirancang untuk membangun sistem render terdistribusi, muncul:
- Dasbor web
- Satu set perangkat lunak untuk instalasi pada node
- Oleh sistem manajemen:
- Subsistem kontrol akses
- Subsistem penguraian tugas render
- Subsistem distribusi tugas
- Subsistem Pengomposisian
- Lansekap server dan subsistem manajemen topologi jaringan
- Subsistem Logging dan Audit
- Subsistem Pakar Pembelajaran
- Rest API atau antarmuka lain untuk pengembang eksternal
Apa yang kamu pikirkan Pertanyaan apa yang diangkat topik dan jawaban apa yang Anda minati?