Konsep kunci untuk SimSpace Weaver - AWS SimSpace Weaver

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konsep kunci untuk SimSpace Weaver

Simulasi atau permainan dibatasi oleh komputer yang menjalankannya. Saat Anda menumbuhkan ukuran dan kompleksitas dunia virtual Anda, kinerja pemrosesan mulai menurun. Perhitungan membutuhkan waktu lebih lama, sistem kehabisan memori, dan frame rate klien turun. Untuk simulasi yang tidak memerlukan kinerja real-time, ini mungkin hanya mengganggu. Atau, ini bisa menjadi situasi kritis bisnis di mana peningkatan penundaan pemrosesan mengakibatkan peningkatan biaya. Jika simulasi atau game Anda membutuhkan kinerja waktu nyata, maka penurunan kinerja jelas menjadi masalah.

Solusi umum untuk simulasi yang mencapai batas kinerja adalah dengan menyederhanakan simulasi. Game online dengan banyak pengguna sering mengatasi masalah penskalaan dengan membuat salinan dunia virtual mereka di server yang berbeda dan menyebarkan pengguna ke seluruh mereka.

SimSpace Weavermemecahkan masalah penskalaan dengan membagi dunia virtual Anda secara spasial dan mendistribusikan potongan-potongan di sekelompok contoh komputasi yang berjalan diAWS Cloud. Instans komputasi bekerja sama untuk memproses seluruh dunia simulasi secara parallel. Dunia simulasi Anda muncul sebagai satu ruang terintegrasi untuk semua yang ada di dalamnya, dan untuk semua klien yang terhubung dengannya. Anda tidak lagi harus menyederhanakan simulasi karena batas kinerja perangkat keras. Anda dapat menambahkan kapasitas komputasi lebih banyak di cloud.

Cara kerja SimSpace Weaver

Simulasi Anda terdiri dari dunia dengan benda-benda di dalamnya. Beberapa benda (seperti orang dan kendaraan) bergerak dan melakukan sesuatu. Objek lain (seperti pohon dan bangunan) bersifat statis. DiSimSpace Weaver, entitas adalah objek di dunia simulasi Anda.

Anda menentukan batas-batas dunia simulasi Anda dan membaginya menjadi grid. Alih-alih membuat logika simulasi yang beroperasi di seluruh grid, Anda membuat logika simulasi yang beroperasi pada satu sel grid. DiSimSpace Weaver, aplikasi spasial adalah program yang Anda tulis yang mengimplementasikan logika simulasi untuk sel grid Anda. Ini termasuk logika untuk semua entitas dalam sel itu. Area kepemilikan aplikasi spasial adalah sel grid yang dikendalikan aplikasi spasial.

catatan

DalamSimSpace Weaver, istilah “app” dapat merujuk ke kode aplikasi atau instance yang berjalan dari kode itu.

Peta dunia simulasi dibagi menjadi grid 2 dimensi
Dunia simulasi Anda dibagi menjadi grid

Anda membagi dunia simulasi Anda menjadi grid. Setiap aplikasi spasial mengimplementasikan logika simulasi untuk satu sel dalam grid tersebut.

SimSpace Weavermenjalankan instance kode aplikasi spasial Anda untuk setiap sel grid Anda. Semua instance aplikasi spasial berjalan secara parallel. Pada dasarnya,SimSpace Weaver membagi simulasi keseluruhan Anda menjadi beberapa simulasi yang lebih kecil. Masing-masing simulasi yang lebih kecil menangani bagian dari dunia simulasi secara keseluruhan. SimSpace Weaverdapat mendistribusikan dan menjalankan simulasi yang lebih kecil ini di beberapa instans Amazon Elastic Compute Cloud (Amazon EC2) (disebut pekerja) di instans Amazon Elastic Compute Cloud (Amazon EC2) diAWS Cloud. Seorang pekerja tunggal dapat menjalankan beberapa aplikasi spasial.

Entitas dapat bergerak melalui dunia simulasi. Jika entitas memasuki area kepemilikan aplikasi spasial lain (sel lain di grid), maka pemilik aplikasi spasial dari area baru mengambil alih kendali entitas tersebut. Jika simulasi Anda berjalan pada beberapa pekerja, maka entitas dapat beralih dari kontrol aplikasi spasial pada satu pekerja ke aplikasi spasial pada pekerja yang berbeda. Ketika entitas pindah ke pekerja yang berbeda,SimSpace Weaver menangani komunikasi jaringan yang mendasarinya.

Langganan

Pandangan aplikasi spasial tentang dunia adalah area kepemilikannya sendiri. Untuk mengetahui apa yang terjadi di bagian lain dunia simulasi, aplikasi spasial membuat langganan. Area berlangganan adalah bagian dari keseluruhan area dunia simulasi. Area langganan dapat mencakup bagian dari beberapa area kepemilikan, termasuk area kepemilikan aplikasi spasial sendiri. SimSpace Weavermemberitahukan aplikasi spasial dari semua peristiwa entitas (misalnya, masuk, keluar, membuat, memperbarui, dan menghapus) yang terjadi dalam area berlangganan.

Jaringan dunia dengan hanya satu sel yang dapat diamati
Pandangan aplikasi spasial tentang dunia

Pandangan aplikasi spasial tentang dunia adalah area kepemilikannya, yang merupakan satu sel di grid dunia.

Jaringan dunia dengan satu sel yang dapat diamati dan area tambahan yang dapat diamati yang mencakup sel lain dan bagian sel di sekitarnya
Tampilan aplikasi spasial dengan area langganan tambahan

Aplikasi spasial menggunakan langganan untuk mengetahui apa yang terjadi di bagian lain dunia simulasi. Area berlangganan dapat berisi beberapa sel grid dan bagian sel.

Misalnya, aplikasi yang mensimulasikan entitas yang berinteraksi secara fisik mungkin perlu mengetahui entitas di luar batas spasial area kepemilikannya. Untuk mencapai hal ini, aplikasi dapat berlangganan ke area yang berbatasan dengan area kepemilikannya. Setelah membuat langganan, aplikasi menerima pemberitahuan tentang peristiwa entitas di area tersebut dan dapat membaca entitas. Contoh lain adalah kendaraan otonom yang perlu melihat semua entitas 200 meter di depannya terlepas dari aplikasi apa yang memiliki area tersebut. Aplikasi untuk kendaraan dapat membuat langganan dengan filter sebagai kotak pembatas sumbu selaras(AABB) yang mencakup area yang dapat dilihat.

Anda dapat membuat logika simulasi yang tidak bertanggung jawab untuk mengelola aspek spasial simulasi Anda. Aplikasi kustom adalah program yang dapat dieksekusi yang berjalan pada satu pekerja. Anda mengontrol siklus hidup (mulai dan berhenti) aplikasi kustom. Simulasi klien dapat terhubung ke aplikasi kustom untuk melihat atau berinteraksi dengan simulasi. Anda juga dapat membuat aplikasi layanan yang berjalan di setiap pekerja. SimSpace Weavermemulai instance aplikasi layanan Anda di setiap pekerja yang menjalankan simulasi Anda.

Aplikasi khusus dan aplikasi layanan membuat langganan untuk mempelajari tentang peristiwa entitas dan entitas baca. Aplikasi ini tidak memiliki area kepemilikan karena bukan spasial. Menggunakan langganan adalah satu-satunya cara mereka dapat mengetahui apa yang terjadi di dunia simulasi.

Bagaimana Anda menggunakanSimSpace Weaver

Saat Anda menggunakanSimSpace Weaver, ini adalah langkah-langkah utama yang Anda ikuti:

  1. Tulis dan buatC++ aplikasi yang mengintegrasikan SDKSimSpace Weaver aplikasi.

    1. Aplikasi Anda melakukan panggilan API untuk berinteraksi dengan status simulasi.

  2. Tulis klien yang melihat dan berinteraksi dengan simulasi Anda melalui beberapa aplikasi.

  3. Konfigurasikan simulasi Anda dalam file teks.

  4. Unggah paket aplikasi dan konfigurasi simulasi ke layanan.

  5. Mulai simulasi Anda.

  6. Mulai dan hentikan aplikasi khusus Anda sesuai kebutuhan.

  7. Connect klien ke aplikasi kustom atau layanan Anda untuk melihat atau berinteraksi dengan simulasi.

  8. Periksa log simulasi Anda di AmazonCloudWatch Logs.

  9. Hentikan simulasi Anda.

  10. Bersihkan simulasi Anda.

Skema simulasi

Simulasi skema (atau skema) adalah file teksYAML -formatted yang berisi informasi konfigurasi untuk simulasi Anda. SimSpace Weavermenggunakan skema Anda ketika memulai simulasi. PaketSimSpace Weaver aplikasi SDK yang dapat didistribusikan menyertakan skema untuk proyek sampel. Anda dapat menggunakan ini sebagai titik awal untuk skema Anda sendiri. Untuk informasi selengkapnya tentang skema simulasi, lihatSimSpace Weaver referensi skema simulasi.

Pekerja dan unit sumber daya

Pekerja adalah instans Amazon EC2 yang menjalankan simulasi Anda. Anda menentukan jenis pekerja dalam skema simulasi Anda. SimSpace Weavermemetakan tipe pekerja Anda ke jenis instans Amazon EC2 tertentu yang digunakan layanan. SimSpace Weavermemulai dan menghentikan pekerja Anda untuk Anda, dan mengelola komunikasi jaringan antara pekerja. SimSpace Weavermemulai satu set pekerja untuk setiap simulasi. Simulasi yang berbeda menggunakan pekerja yang berbeda.

Kapasitas komputasi (prosesor dan memori) yang tersedia pada pekerja dibagi menjadi unit logis yang disebut unit sumber daya komputasi (atau unit sumber daya). Unit sumber daya mewakili jumlah prosesor dan kapasitas memori yang tetap.

catatan

Kami sebelumnya disebut unit sumber daya komputasi sebagai slot. Anda mungkin masih melihat istilah sebelumnya ini dalam dokumentasi kami.

Jam simulasi

Setiap simulasi memiliki jam sendiri. Anda memulai dan menghentikan jam menggunakan panggilan API atauSimSpace Weaver konsol. Simulasi diperbarui hanya ketika jam berjalan. Semua operasi dalam simulasi terjadi dalam segmen waktu yang disebut kutu. Jam mengumumkan waktu mulai setiap centang untuk semua pekerja.

Clock rate (atau tick rate) adalah jumlah tick per detik (hertz, atau Hz) yang diumumkan jam. Clock rate yang diinginkan untuk simulasi adalah bagian dari skema simulasi. Semua operasi untuk tanda centang harus selesai sebelum tick berikutnya dimulai. Untuk alasan ini, clock rate efektif bisa lebih rendah dari clock rate yang diinginkan. Kecepatan clock efektif tidak akan lebih tinggi dari clock rate yang diinginkan.

Partisi

Partisi adalah segmen memori bersama pada pekerja. Setiap partisi memegang bagian dari data status simulasi.

Partisi untuk aplikasi spasial (juga disebut partisi aplikasi spasial atau partisi spasial) berisi semua entitas di area kepemilikan aplikasi spasial. SimSpace Weavermenempatkan entitas dalam partisi aplikasi spasial berdasarkan lokasi spasial masing-masing entitas. Ini berarti bahwaSimSpace Weaver mencoba untuk menempatkan entitas yang spasial dekat satu sama lain pada pekerja yang sama. Ini meminimalkan jumlah pengetahuan yang dibutuhkan aplikasi dari entitas yang tidak dimilikinya untuk mensimulasikan entitas yang dimilikinya.

Fabric Negara

Negara Fabric adalah sistem memori bersama (koleksi semua partisi) pada semua pekerja. Ini menyimpan semua data negara untuk simulasi Anda.

Fabric Negara menggunakan format biner kustom yang menggambarkan entitas sebagai sekumpulan data awal dan log pembaruan, untuk setiap bidang data entitas tersebut. Dengan format ini, Anda dapat mengakses keadaan entitas pada titik sebelumnya dalam waktu simulasi dan memetakannya kembali ke titik dalam waktu dunia nyata. Buffer memiliki ukuran terbatas, dan tidak mungkin untuk kembali ke masa melampaui apa yang ada di buffer. SimSpace Weavermenggunakan pointer ke offset saat ini di log pembaruan untuk setiap bidang, dan memperbarui pointer sebagai bagian dari pembaruan bidang. SimSpace Weavermemetakan log pembaruan ini ke ruang proses aplikasi menggunakan memori bersama.

Format objek ini menghasilkan overhead rendah dan tidak ada biaya serialisasi. SimSpace Weaverjuga menggunakan format objek ini untuk mengurai dan mengidentifikasi bidang indeks (seperti posisi entitas).

Entitas

Entitas adalah unit penyusun data terkecil di simulasi Anda. Contoh entitas termasuk aktor (seperti orang dan kendaraan) dan benda statis (seperti bangunan dan rintangan). Entitas memiliki properti (seperti posisi dan orientasi) yang dapat Anda simpan sebagai data persistenSimSpace Weaver. Entitas ada dalam partisi.

Aplikasi

SimSpace WeaverAplikasi adalah perangkat lunak yang Anda tulis yang berisi logika khusus yang menjalankan setiap centang simulasi. Tujuan sebagian besar aplikasi adalah untuk memperbarui entitas saat simulasi berjalan. Aplikasi Anda memanggil API di SDKSimSpace Weaver aplikasi untuk melakukan tindakan (seperti membaca dan memperbarui) pada entitas dalam simulasi Anda.

Anda mengemas aplikasi dan sumber daya yang diperlukan (seperti pustaka) sebagai file.zip dan mengunggahnyaSimSpace Weaver. Aplikasi berjalan dalam container Docker pada pekerja. SimSpace Weavermengalokasikan setiap aplikasi sejumlah unit sumber daya tetap pada pekerja.

SimSpace Weavermenetapkan kepemilikan satu (dan hanya satu) partisi untuk setiap aplikasi. Aplikasi dan partisinya terletak pada pekerja yang sama. Setiap partisi hanya memiliki satu pemilik aplikasi. Aplikasi dapat membuat, pada partisinya, dan menghapus entitas di partisinya. Aplikasi memiliki semua entitas dalam partisinya.

Ada tiga jenis aplikasi: aplikasi spasial, aplikasi khusus, dan aplikasi layanan. Mereka berbeda dengan kasus penggunaan dan siklus hidup.

catatan

DalamSimSpace Weaver, istilah “app” dapat merujuk ke kode untuk aplikasi atau instance kode yang sedang berjalan.

Aplikasi spasial

Aplikasi spasial memperbarui status entitas yang ada secara spasial dalam simulasi Anda. Misalnya, Anda dapat menentukanPhysics aplikasi yang bertanggung jawab untuk memindahkan dan menabrak entitas untuk setiap tick berdasarkan kecepatan, bentuk, dan ukurannya. Dalam kasus ini,SimSpace Weaver jalankan beberapa instancePhysics aplikasi secara parallel untuk menangani ukuran beban kerja.

SimSpace Weavermengelola siklus hidup aplikasi spasial. Anda menentukan susunan partisi aplikasi spasial dalam skema simulasi Anda. Saat Anda meluncurkan simulasi,SimSpace Weaver mulai aplikasi spasial untuk setiap partisi aplikasi spasial. Saat Anda menghentikan simulasi,SimSpace Weaver matikan aplikasi spasial Anda.

Jenis aplikasi lain dapat membuat entitas, tetapi hanya aplikasi spasial yang dapat memperbarui entitas. Jenis aplikasi lain harus mentransfer entitas yang mereka buat ke domain spasial. SimSpace Weavermenggunakan lokasi spasial entitas untuk memindahkan entitas ke partisi aplikasi spasial. Ini mentransfer kepemilikan entitas ke aplikasi spasial.

Aplikasi khusus

Anda menggunakan aplikasi khusus untuk berinteraksi dengan simulasi Anda. Aplikasi kustom membaca data entitas menggunakan langganan. Aplikasi kustom dapat membuat entitas. Namun, aplikasi harus mentransfer entitas ke aplikasi spasial untuk menyertakan entitas dalam simulasi dan memperbaruinya. Anda dapatSimSpace Weaver menetapkan titik akhir jaringan ke aplikasi khusus. Simulasi klien dapat terhubung ke endpoint jaringan untuk berinteraksi dengan simulasi. Anda menentukan aplikasi kustom Anda dalam skema simulasi Anda, tetapi Anda bertanggung jawab untuk memulai dan menghentikannya (menggunakan panggilanSimSpace Weaver API). Setelah Anda memulai instance aplikasi kustom pada pekerja,SimSpace Weaver tidak mentransfer instance ke pekerja lain.

Aplikasi layanan

Anda dapat menggunakan aplikasi layanan saat memerlukan proses hanya-baca yang berjalan di setiap pekerja. Misalnya, Anda dapat menggunakan aplikasi layanan jika Anda memiliki simulasi besar dan Anda memerlukan klien yang melihat yang bergerak melalui simulasi dan hanya menampilkan entitas yang terlihat kepada pengguna. Dalam kasus ini, satu instance aplikasi kustom tidak dapat memproses semua entitas dalam simulasi. Anda dapat mengonfigurasi aplikasi layanan untuk diluncurkan di setiap pekerja. Masing-masing aplikasi layanan ini kemudian dapat memfilter entitas pada pekerja yang ditugaskan dan hanya mengirim entitas yang relevan ke klien yang terhubung. Klien melihat Anda kemudian dapat terhubung ke aplikasi layanan yang berbeda saat bergerak melalui ruang simulasi. Anda mengonfigurasi aplikasi layanan dalam skema simulasi Anda. SimSpace Weavermemulai dan menghentikan aplikasi layanan Anda untuk Anda.

Ringkasan aplikasi

Tabel berikut merangkum karakteristik dari berbagai jenisSimSpace Weaver aplikasi yang berbeda.

  Aplikasi spasial Aplikasi khusus Aplikasi layanan
Membaca entitas

Ya

Ya

Ya

Entitas pembaruan

Ya

Tidak

Tidak

Buat entitas

Ya

Ya*

Ya*

Siklus hidup

Dikelola (SimSpace Weavermengendalikannya.)

Tidak dikelola (Anda mengendalikannya.)

Dikelola (SimSpace Weavermengendalikannya.)

Metode mulai

SimSpace Weavermemulai satu instance aplikasi untuk setiap partisi spasial, sebagaimana ditentukan dalam skema Anda.

Anda memulai setiap instance aplikasi.

SimSpace Weavermemulai satu atau beberapa instance aplikasi pada setiap pekerja, seperti yang ditentukan dalam skema Anda.

Client dapat mengoneksikan

Tidak

Ya

Ya

* Ketika aplikasi kustom atau aplikasi layanan membuat entitas, aplikasi harus mentransfer kepemilikan entitas ke aplikasi spasial sehingga aplikasi spasial dapat memperbarui status entitas.

Domain

SimSpace WeaverDomain adalah kumpulan instance aplikasi yang menjalankan kode aplikasi yang dapat dieksekusi yang sama dan memiliki opsi dan perintah peluncuran yang sama. Kami merujuk ke domain berdasarkan jenis aplikasi yang dikandungnya: domain spasial, domain khusus, dan domain layanan. Anda mengonfigurasi aplikasi Anda dalam domain.

Langganan dan replikasi

Aplikasi membuat langganan ke wilayah spasial untuk mempelajari peristiwa entitas (misalnya, masuk, keluar, membuat, memperbarui, dan menghapus) di wilayah tersebut. Aplikasi memproses peristiwa entitas dari langganan sebelum membaca data untuk entitas dalam partisi yang tidak dimilikinya.

Partisi dapat ada pada pekerja yang sama dengan aplikasi (ini disebut partisi lokal), tetapi aplikasi lain dapat memiliki partisi. Sebuah partisi juga dapat ada pada pekerja yang berbeda (ini disebut partisi jarak jauh). Jika berlangganan ke partisi jarak jauh, pekerja membuat salinan lokal dari partisi jarak jauh melalui proses yang disebut replikasi. Pekerja kemudian membaca salinan lokal (direplikasi partisi remote). Jika aplikasi lain pada pekerja perlu membaca dari partisi itu pada centang yang sama, maka pekerja akan membaca salinan lokal yang sama.