Tinjauan umum dan pengujian komparatif PC "Elbrus 401 - PC". Tambahan - Pertanyaan dan Jawaban

Mungkin hasil utama dari penerbitan ulasan ini , selain untuk mengenalkan publik dengan kesan independen pertama dari komputer baru, adalah keinginan dari perusahaan MCST itu sendiri untuk mengungkapkan lebih detail, menghilangkan kesalahpahaman dan menjawab pertanyaan yang diajukan dalam artikel dan dalam komentarnya. Beberapa dari masalah ini sangat mendasar sehingga mereka layak mendapatkan artikel terpisah, dan karena itu memerlukan studi serius. Sekarang kita akan melihat orang-orang yang paling cocok dengan format wawancara.

401-PC   100 %



Isi




Poin umum


Untuk memahami posisi perusahaan ICST dengan benar dalam pertanyaan di bawah ini, perlu membayangkan masa lalu, masa kini, dan rencana masa depan - terlepas dari konteks ini, beberapa fakta mungkin terlihat aneh.

Secara historis, pelanggan utama dan konsumen produk MCST adalah struktur tenaga. Kisaran dan volume produksi terbatas, setiap komputer terdaftar, setiap pelanggan dikenal dengan penglihatan, secara kiasan. Dengan model penjualan seperti itu, hanya perlu dan cukup untuk beredar hanya sistem yang mapan dan bersertifikat, di mana perangkat lunak aplikasi dipertajam tajam. Setiap klien memerlukan pendekatan pribadi - konsultasi yang memenuhi syarat dalam pemilihan peralatan dan operasi selanjutnya, termasuk dengan kepergian seorang insinyur layanan di lokasi instalasi (di mana saja di tanah yang luas, serta di laut). Yaitu, "perusahaan terry", kecuali mungkin dengan spesifiknya sendiri.

Sekarang, MCST benar-benar ingin memasuki pasar sipil - pertama-tama ke sektor korporasi, yang bagaimanapun lebih dekat dengan pengalaman saat ini, dan kemudian ke segmen konsumen, yaitu ke massa terluas. Jelas bahwa jika pelanggan bisnis entah bagaimana masih siap menanggung biaya tambahan (tapi tidak tentu apa yang pelanggan tradisional MCST siap untuk menanggung), terutama ketika keuntungan memilih eksklusif mahal jelas, maka rata-rata orang memilih dengan dompet untuk yang paling terjangkau barang, menyetujui produk dengan kualitas lebih rendah dan kadang-kadang kurangnya dukungan dari produsen. Dan bahkan orang awam mendambakan hal-hal baru - beri mereka dua kali lipat jumlah transistor setiap setengah tahun, versi terbaru dari kernel, perpustakaan sistem dan program aplikasi; dan tidak begitu pentingberapa banyak kesalahan lama dihilangkan di sana dan berapa banyak kesalahan baru muncul, seberapa banyak perangkat lunak menjadi lebih berat dan bagaimana sekarang melambat pada mesin-mesin generasi sebelumnya.

Kesenjangan yang jelas antara yang diinginkan dan yang nyata dipahami dengan baik di ICST di semua tingkatan - tidak ada yang memiliki ilusi pelangi bahwa Anda dapat langsung keluar dari kelelawar, di depan pelari yang terhormat dan pelari maraton yang berpengalaman, terutama karena dengan saingan seperti itu diperlukan, seperti pada dongeng terkenal, bergegas dengan sekuat tenaga, hanya untuk tinggal di tempat. Sekarang tidak ada uang atau kapasitas produksi untuk terobosan semacam itu, atau sumber daya manusia dasar - staf tiga urutan lebih rendah dari Intel atau Microsoft, dan semua orang harus menghadapinya segera. Bahkan untuk mencakup struktur komersial atau anggaran, pertama-tama perlu untuk memperluas jaringan dealer dan bengkel, untuk membangun sistem pelatihan dan dukungan teknis - sekarang MCST hanya menyelidiki cara mencari mitra. Dan, tentu saja, investasi finansial diperlukan:untuk dapat menjual komputer mereka dengan murah, perlu untuk mengurangi biaya produksi, dan ini hanya dapat dicapai dengan peningkatan volume yang signifikan - lingkaran setan diperoleh, yang sangat sulit untuk dipatahkan.

Ada juga pemahaman bahwa produk konsumen harus sangat terbuka, itu mungkin dan dianjurkan: misalnya, bahwa dokumentasi, distribusi instalasi perangkat lunak dan pembaruan tepat waktu untuk itu, kode sumber dari program ini harus tersedia secara gratis, bahwa platform untuk konsultasi publik dan pertukaran pengalaman, literatur pendidikan untuk pemula dan spesialis. Tetapi ini juga tidak muncul dengan sendirinya dalam semalam, dan perusahaan masih berada di awal jalan untuk memenangkan hati dan pikiran pelanggan potensial.

Karena sulit untuk meninggalkan kebiasaan lama, terutama ketika masih tidak ada praktik melakukan bisnis di lingkungan yang sama sekali berbeda, perlu untuk membuat diskon pada kenyataan bahwa ketika karyawan perusahaan menjawab pertanyaan lebih lanjut dalam teks, kemudian, dengan mengatakan "pengguna", mereka sering masih memiliki tipe klien klasiknya dengan siapa ada kontak pribadi dan kontrak langsung, dan seringkali juga perjanjian non-pengungkapan tambahan, klien semacam itu sendiri tidak tertarik pada publisitas dan tahu bahwa ia dapat mengandalkan segala kemauan untuk uangnya. Tetapi, seperti dapat dilihat dari banyak jawaban, templat ini tidak lagi dianggap sebagai satu-satunya. Di sini juga, semuanya akan berkembang secara bertahap, langkah demi langkah.

Produksi dan Promosi


Di pabrik mana CPU dan KPI diproduksi? Dalam volume berapa? Benarkah produksi dibatasi (ditangguhkan) selama dua tahun?

Tidak ada rahasia di sini: sirkuit mikro baru sekarang diproduksi hanya di Asia. Dan jika kita bertujuan untuk bersaing secara serius di pasar bebas, belum ada alternatif untuk ini. Hal lain adalah bahwa kemudian pertanyaan alami keamanan informasi muncul dalam aplikasi kritis, tetapi untuk pelanggan kategori khusus dimungkinkan untuk mengatur produksi di fasilitas lokal dalam jumlah terbatas - dengan tingkat harga yang sesuai. Proyek pertama (dan berhasil) dari jenis ini adalah prosesor Elbrus-2SM: kristalnya diproduksi di pabrik Micron di Zelenograd.

Pelepasan sirkuit mikro tidak berhenti - apalagi, mereka terus-menerus disesuaikan. Sederhananya, dengan standar modern, volume kurang dari seribu kristal per tahun dianggap sebagai produksi skala kecil, dan pesanan dibuat hanya sesekali, konveyor sepanjang waktu tidak diperlukan di sini.

Banyak prosesor pada tahap ini pergi ke kebutuhan domestik, baik duniawi dan eksperimental. Sebagai contoh, sebuah kompleks komputasi baru-baru ini dirakit dari 32 modul 1U dengan masing-masing empat prosesor Elbrus-4C - total 512 core. Setiap orang yang memiliki tugas menarik untuk sistem seperti itu dapat melamar waktu mesin. (Secara singkat, kelas program apa yang paling efisien dijalankan pada arsitektur E2K, dan bagaimana mengoptimalkan kode sumber Anda, akan dijelaskan di bawah ini, dan direncanakan untuk membahas topik ini secara lebih rinci dalam publikasi terpisah.)

Berapa volume produksi yang mungkin untuk mengurangi biaya kit "motherboard + prosesor" ke tingkat yang dapat diterima oleh berbagai pelanggan? Seberapa cepat industri elektronik Rusia dapat menyediakan volume seperti itu?

Untuk mencapai tingkat sekitar $ 1.000, perlu untuk menghasilkan setidaknya 10 ribu produk jadi setiap tahun, dan bergerak lebih jauh ke arah pembeli hanya dimungkinkan dengan aliran sekitar 100 ribu produk per tahun. Tentu saja, maka semua produksi harus terkonsentrasi di Cina, atau pabrik-pabrik dalam negeri harus bekerja dengan sangat baik untuk mengurangi biaya logistik dan mengurangi biaya produksi. Sekarang semua motherboard yang diproduksi oleh MCST dipasang di pabrik-pabrik Rusia.

Berapa volume produksi yang akan dibenarkan untuk merilis versi prosesor yang disederhanakan untuk sistem 1-socket - tanpa blok interaksi inter-prosesor dan akses ke memori jarak jauh?

Bahkan 10 ribu kristal setahun tidak akan membenarkan perubahan dalam topologi. Sebaliknya, masuk akal untuk menyingkirkan kesimpulan yang tidak digunakan, yang akan mengurangi area substrat, tetapi di masa mendatang bahkan ini tidak akan membenarkan dirinya sendiri.

Berapa biaya lisensi untuk sistem operasi jika penjualan komponen secara terpisah dimulai?

Sejauh ini, skema penjualan seperti itu belum berjalan, tetapi kemungkinan besar pengalaman rekan kerja dari Alt Linux akan diadopsi - untuk penggunaan pribadi, harganya pasti tidak akan menjadi beban.

Kapan mengharapkan sistem yang siap pakai berdasarkan Elbrus-8C? Apakah karakteristik prosesor masa depan didefinisikan? Akankah model selanjutnya memiliki 16 core dan frekuensi clock 2 GHz, misalnya?

Model pra-produksi mesin prosesor tunggal berbasis G8 dapat dilihat pada musim panas ini. Langkah selanjutnya adalah sedikit peningkatan frekuensi (hingga 1,5 Hz) dan penggandaan jumlah unit komputasi floating-point yang merupakan kekuatan pendorong utama platform ini - prosesor semacam itu sudah dikembangkan dengan nama kerja "Elbrus-8SV". Sebuah prosesor dengan 16 core direncanakan akan dirilis pada tahun 2020.

Mengapa sistem penamaan perangkat keras dan lunak begitu membingungkan?

Ketika Anda hanya memiliki beberapa produk dasar dalam aset Anda, tidaklah sulit untuk memahami nomenklaturnya, terutama untuk seorang profesional. Sekarang, ketika spektrum perangkat keras dan perangkat lunak meluas, ketika ada orientasi ke pengguna rata-rata, sistem penamaan secara bertahap dibawa ke bentuk yang dapat dimengerti oleh orang awam.

Klarifikasi penting.Adalah salah untuk menyebutkan penunjukan "Elbrus 2000", serta singkatan "E2K" dalam konteks produk modern: nama resmi arsitektur mikroprosesor ini adalah "Elbrus", tanpa sufiks. Nama "Elbrus-2000" dipilih untuk arsitektur, yang mereka rencanakan untuk diimplementasikan bersama dengan perusahaan-perusahaan Barat pada tahun 2000. Pada awal tahun 1999, sebuah artikel yang menggambarkan arsitektur mikroprosesor "Elbrus-2000" dicetak dalam jurnal Microprocessor Report, yang terlihat dalam bahasa Inggris sebagai "Elbrus-2000", dan dalam bentuk singkat - "E2k". Arsitektur Elbrus saat ini telah secara substansial disempurnakan sehubungan dengan arsitektur E2k, ini adalah versi ketiga, sehingga penggunaan notasi lama tidak sepenuhnya benar. Jugasingkatan E2K (dengan huruf kapital "K") dapat diartikan oleh teknisi komputer ortodoks sebagai 2048, yang sama sekali tidak berharga.

Dukungan pengguna


Apakah ada dokumentasi elektronik? Apakah Anda berencana untuk meletakkan dokumentasi di domain publik untuk diunduh gratis kepada siapa saja yang mau (terlepas dari fakta pembelian peralatan)?

Dokumentasi dapat diunduh sekarang, tetapi sejauh ini hanya memiliki tautan yang dikirim atas permintaan. Namun, dalam beberapa bulan mendatang direncanakan untuk meluncurkan komunitas dan situs dukungan teknis, di mana semua informasi akan berada dalam domain publik. Karena kita berbicara tentang lusinan dokumen, itu akan memakan waktu.

Apakah Anda berencana untuk membuka bugilla untuk dilihat publik? Buat FAQ, atur situs - forum untuk pertukaran pengalaman yang terbuka?

Anda tidak bisa hanya mengambil dan membuka bugilla, di mana banyak tiket berisi informasi "sangat sensitif". Kemungkinan besar, bugzilla terpisah akan dibuat untuk massa, tersedia untuk dilihat dan diisi ulang oleh semua pendatang. Dan pengalaman yang sebelumnya terakumulasi pada pertanyaan yang paling sering diajukan akan diproses ke dalam FAQ, yang juga akan diposting di situs dukungan baru. Akan ada juga forum, kemungkinan besar.

Bagaimana dengan menerbitkan kode sumber untuk perangkat lunak yang disesuaikan dan mengirimkan tambalan ke hulu proyek? Apakah Anda berencana menerima tambalan dari pengguna? Bagaimana dengan hadiah untuk kerentanan yang ditemukan?

Kode sumber tidak ditata untuk akses publik hanya karena klien itu sendiri tidak publik, dan permintaan di antara mereka untuk kode sumber kecil, dan yang benar-benar membutuhkannya bukan karena keingintahuan - dia mengirim permintaan dan menerima semua yang dibutuhkan secara pribadi. Direncanakan bahwa untuk konsumen massal di masa mendatang repositori publik akan dibuat, di mana semua kode pinjaman akan pergi. Perusahaan tidak berencana untuk membuka pengembangannya sendiri, seperti kompiler LCC, - pada akhirnya, Intel C ++ Compiler (yaitu, MCST menganggapnya saingan utama dalam hal optimasi) juga ditutup, dan terasa baik pada saat yang sama.

Tambalan dari pengguna sudah diterima, sejauh ini, secara pribadi, tentu saja. Akan sulit membayangkan bagaimana ini akan terlihat ketika memperluas basis klien dan gelombang perhatian dari para penggemar.

Mengirim perubahan Anda kepada penulis proyek asli tidak diragukan lagi adalah hal yang baik, tetapi seseorang perlu melakukan ini, Anda perlu mengetahui pendekatan untuk setiap proyek, untuk memahami karakteristik budaya masyarakat. Tugas yang lebih layak adalah sekadar membagikan seluruh kode dalam domain publik: jika ada β€œduta besar niat baik” yang siap berinteraksi dengan satu atau yang lain di hulu, maka itu bagus. Sejauh ini, ICST tidak memiliki pengalaman seperti itu.

Perangkat keras


Bagaimana cara menggunakan adaptor video terintegrasi dalam lingkungan grafis? Seberapa nyaman kinerjanya untuk pekerjaan 2D?

Memulai konfigurasi ulang tabel grafik akan lebih mudah dengan menjalankan utilitas xorg-server.postinst . Fitur akselerasi 3D adaptor bawaan benar-benar tidak ada, tetapi penggunaan normal aplikasi desktop seharusnya tidak menyebabkan ketidaknyamanan - tentu saja tidak sama seperti pada komputer lama. Mungkin, akan perlu untuk merekam ini di video dan menempatkan video kecil - bukannya seribu kata.

Kartu grafis diskrit mana, selain Radeon HD 6450 / R5 230, yang didukung oleh sistem operasi? Fungsi akselerasi perangkat keras apa yang tersedia untuk program aplikasi melalui driver yang tersedia di sistem?

Ini mendukung seluruh jajaran modern Radeon, kompatibel dengan driver terbuka untuk Linux. Karena nVidia sangat sedih dalam hal ini, produk mereka tidak memiliki dukungan dalam sistem operasi Elbrus saat ini.

Apa yang dapat menjelaskan kecepatan baca dan tulis yang rendah dan tidak normal pada solid state drive, yang bahkan tidak mencapai bandwidth nominal antarmuka SATA-2 yang terhubung?

Ini adalah batasan yang diketahui dari chip 1991VG1YA, yang mengimplementasikan pengontrol antarmuka periferal (KPI). Versi optimal controller (KPI-2), di mana masalah ini diselesaikan, akan diinstal dalam sistem dengan prosesor Elbrus-8C dan Elbrus-1C + yang baru.

Mengapa komputer Elbrus 401 - PC memiliki hard drive 1 TB jika bahkan tidak dikonfigurasikan dalam sistem operasi, dan drive utama sudah menyediakan banyak ruang kosong?

Tujuan yang jelas dari hard drive adalah untuk menyimpan sejumlah besar data, yang diminati oleh kontingen pengguna saat ini. Fakta bahwa disk tidak dipasang pada sistem adalah cacat, tetapi tidak signifikan: beberapa pengguna juga memformat ulang kartu flash agar sesuai dengan kebutuhan mereka alih-alih terjemahan biner, Anda tidak dapat menyenangkan semua orang sekaligus.

Apa tujuan mengecat pengencangan sekrup drive solid-state, sebagai segel jaminan atau untuk mencegah melonggarkan diri?

Memang, cat utamanya adalah stopper. Drive dapat dibuka-tutup - tidak membatalkan jaminan, tetapi jika sesuatu rusak, maka teknisi layanan akan memiliki pertanyaan alami bagi pengguna terkait tindakan yang diambil.

Dari mana asal pengenal perangkat PCI - mengapa banyak perangkat terpasang memiliki kode pengembang (Vendor ID) yang sama dengan Intel?

Alasannya benar-benar membosankan - karena sistem operasi Windows dalam mode biner lebih mudah dirasakan di rumah. Namun, karena pengikatan paranoid dari kode aktivasi ke peralatan yang digunakan, sistem "ramah" ini kadang-kadang masih mulai bertindak.

Di mana saya dapat menemukan deskripsi modul firmware boot tepercaya Echelon-E?

Ada kesalahpahaman: produk ini murni perangkat lunak, dan hanya kasus khusus dari MDZ "Echelon" yang biasa, yang dikembangkan oleh asosiasi ilmiah dan produksi eponymous. Alat ini menyediakan boot komputer tepercaya, kontrol integritas, identifikasi, dan otentikasi pengguna sebelum mentransfer kontrol ke sistem operasi.

Apakah modul remote control IPMI ditawarkan sebagai opsi untuk server Elbrus-4.4 pengembangan independen, atau apakah itu merupakan produk jadi dari manufaktur asing?

Tentu saja, ini adalah pengembangan independen, tetapi belum merupakan produk jadi - modul ini pada tahap debugging.

Sistem operasi


Sistem penandaan versi apa yang digunakan untuk OS Elbrus?

Jawaban yang benar telah diberikan dalam artikel: nomor versi ditulis dalam file / etc / mcst_version . Itu versi 2.2, yang dilengkapi dengan komputer dari batch pertama, sebenarnya tidak relevan lagi - sekarang stabil 2.3, dan pada tahap kandidat rilis itu adalah 3.0 (dengan kernel 3.14).

Apakah Anda berencana untuk merilis pembaruan rutin yang akan diinstal secara otomatis dari repositori publik? Mengapa tidak semua perangkat lunak yang diinstal pada sistem dikemas?

Ya, pembaruan otomatis sudah direncanakan, meskipun sekarang proses ini masih manual berdasarkan permintaan. Tentu saja, untuk ini, semua perangkat lunak harus dikelola oleh manajer paket, jika sekarang ada yang salah, itu hanya karena proses debug dari proses pembangunan.

Bukankah lebih mudah untuk langsung mem-porting salah satu distribusi Linux yang populer - misalnya, Debian yang sama?

Inilah yang sedang dilakukan oleh salah satu tim. Memang, Debian mungkin menawarkan infrastruktur yang paling nyaman untuk membuat distribusi turunan. Selain itu, Debian sekarang memiliki jangkauan terluas dari arsitektur yang didukung, setidaknya di antara keluarga Linux, sehingga membuat port baru paling logis berdasarkan ini. Namun, prosedur porting untuk kit distribusi ini bukan yang paling mulus dan sistematis, jadi Anda harus bekerja keras. Tetapi ketika proses ini di-debug dan otomatis, sinkronisasi dengan jalur utama akan menjadi [hampir] segera. Tetapi apakah mungkin untuk memberikan status resmi pelabuhan ini adalah pertanyaan besar.

Tetapi daftar sistem operasi yang didukung tidak direncanakan terbatas hanya pada satu opsi. Langkah pertama adalah mengharapkan port ALT Linux, yang tidak membutuhkan pengenalan. Juga, pekerjaan sedang dilakukan untuk mengadaptasi QNX: sistem operasi real-time yang dilindungi Neutrino-Elbrus sudah bekerja dalam beberapa bentuk; tentukan detail di pengembang di pusat kompetensi "Sistem Tertanam SVD".

Seberapa melelahkan porting kernel Linux? Mengapa sekarang kernel versi 2.6.33 digunakan - bukan yang terbaru, tetapi pada saat yang sama tidak didukung sebagai LTS?

Proses porting kernel Linux ke platform perangkat keras tertentu sebenarnya cukup melelahkan, tetapi masalahnya bukan dalam upaya tunggal, tetapi pada kenyataan bahwa setiap kali banyak harus dimulai hampir dari awal, karena semuanya mengalir, berubah dan terseret. Sebagai contoh, kami baru saja pindah ke kernel 3.14 dan mulai bereksperimen dengan cabang 4.x - dan semuanya berubah lagi.

Sangat tidak mungkin bahwa di masa mendatang akan dimungkinkan untuk mencapai adopsi port-nya di mainline kernel.org, ketika semuanya sangat ketat di satu sisi dan agak kacau di sisi lain. Oleh karena itu, prospek yang paling memungkinkan adalah memberikan inti mereka kepada semua orang yang ingin secara mandiri membangun kit distribusi seperti itu, yang ingin mereka buat sendiri.

Versi kernel apa ( default , nn , rt ) yang lebih baik digunakan untuk tujuan apa?

Untuk tugas sehari-hari, kernel default jelas paling cocok. Kernel "nn" ditujukan untuk router jaringan - ada yang lebih murah untuk menangani interupsi. Inti "rt" dapat merencanakan pekerjaan proses, mengamati pembatasan pada irisan waktu yang dialokasikan dalam batas yang ditetapkan, yang memungkinkan kita untuk berbicara tentang perhitungan secara waktu nyata - tidak berarti "cepat", tetapi berarti "dapat diprediksi", meskipun dengan biaya kehilangan kinerja; dalam hal ini, sistem biasanya hanya perlu menjalankan kernel dan aplikasi target, serta set layanan latar belakang minimum yang diperlukan.

Apakah mungkin untuk memulai kembali [kernel] sistem operasi dengan cepat tanpa menginisialisasi ulang perangkat keras? Bagaimana mempercepat peluncuran sistem operasi khususnya dan komputer pada umumnya?

Restart cepat sistem operasi tanpa inisialisasi perangkat keras tidak disediakan. Inisialisasi peralatan dapat dipercepat, pertama, dengan cara yang jelas: misalnya, dengan menonaktifkan atau mengurangi batas waktu pencarian ATA melalui server Ethernet, mereka hanya diperlukan untuk mengunduh melalui jaringan. Kedua, ada juga metode yang tidak jelas pada pandangan pertama: misalnya, Anda dapat menonaktifkan pembersihan RAM, yang biasanya dilakukan untuk tujuan keamanan informasi. Nah, mempercepat peluncuran sistem operasi dengan menonaktifkan semua layanan yang tidak perlu tidak perlu komentar.

Perangkat lunak aplikasi


Untuk tujuan apa versi Firefox 3.6 saat ini diposisikan jika banyak situs yang menggunakan teknologi web modern tidak kompatibel dengannya?

Versi browser saat ini dalam rilis sistem operasi Elbrus saat ini adalah 23.0, yang jauh lebih maju dalam hal fungsi dan kinerja. Sebagai contoh, tes JetStream sekarang berhasil diselesaikan, dengan skor 7,8 poin - tidak jauh lebih rendah dari level 8,2 poin yang dicapai oleh versi Firefox yang sama dalam mode terjemahan biner x86, yang menggunakan kompiler JIT lengkap untuk JavaScript.

Versi 31.0 juga berjalan, tetapi terbukti lebih buruk, lebih lambat, dan mereka memutuskan untuk tidak merilisnya ke publik. Versi bermigrasi berikutnya adalah 44.0.

Apakah sistem memiliki implementasi algoritma kriptografi domestik (termasuk versi saat ini) yang tersedia untuk program C / C ++?

Sekarang OpenSSL telah digantikan oleh cabangnya - LibreSSL, tempat kriptografi Rusia terintegrasi secara resmi.

Bagaimana saya bisa menjelaskan kinerja rendah dari mesin virtual Java, ditunjukkan dalam berbagai tes?

Paket OpenJDK 1.6.0, dalam arti tertentu, merupakan "pemecahan pena" - bekerja pada 1.7.0 dan 1.8.0 sudah berjalan lancar, di mana kami berhasil meningkatkan produktivitas sebanyak 3-4 kali, dilihat dari tes seperti SPECjvm2008. Tetapi dalam kasus umum, tentu saja, masih banyak yang harus dioptimalkan.

Apakah Anda berencana untuk port Mono atau .NET dalam rangka OS Elbrus atau perangkat distribusi lainnya?

Mengingat popularitas teknologi ini, ini hampir tidak bisa dihindari. Tetapi, dengan mempertimbangkan perubahan saat ini dalam hubungan Microsoft dengan komunitas dan masa depan yang tidak pasti dari proyek Mono, ada keinginan alami untuk menunggu sebentar ketika prospek menjadi lebih jelas, sehingga tidak membuang waktu pada buntu cabang-cabang pembangunan.

Sementara itu, jika seseorang perlu menjalankan aplikasi pra-peluncuran, ia dapat menggunakan mode siaran x86. Sebenarnya, ini adalah salah satu tujuan utama teknologi siaran - untuk memastikan kompatibilitas untuk masa transisi, sampai basis perangkat lunak menjadi asli. Omong-omong, sekarang tim MCST aktif bekerja untuk meningkatkan efisiensi penerjemahan aplikasi menggunakan kompiler just-in-time yang serupa.

Apa prospek untuk Elbrus sebagai platform game, mengingat bahwa dalam game modern hampir semua beban jatuh pada kartu video, dan prosesor yang kuat sering tidak diperlukan?

Tidak ada yang pernah mengajukan pertanyaan ini dengan serius. Sejauh ini, jika hanya permainan tidak tersedia dalam kode sumber dan tidak benar-benar portabel, maka satu-satunya jalan keluar adalah memulai Windows atau Steam OS dalam mode siaran biner, tetapi mungkin ada masalah dengan aktivasi lisensi karena kekhasan pengikatan perangkat keras.

Alat Arsitektur dan Pengembangan


Di mana dan bagaimana saya bisa mendapatkan panduan referensi terperinci untuk arsitektur dan set instruksi mesin?

Sekarang semua dokumentasi dikirim berdasarkan permintaan. Tetapi ada nuansa: set instruksi terbuka, tetapi cara untuk menyandikan instruksi dalam kata perintah adalah informasi tertutup karena alasan historis. Pertanyaan tentang pengungkapan lengkap detail arsitektur telah berulang kali dicoba untuk dipecahkan secara positif, tetapi sejauh ini belum ada keputusan yang dibuat.

Namun, ini tidak menghadirkan masalah praktis yang serius, karena, menurut MCST, informasi dalam dokumentasi yang tersedia cukup bahkan untuk pemrograman tingkat rendah melalui intrinsik, dan menghasilkan kode mesin sendiri atau bahkan menulis di E2K assembler tidak berguna dalam hampir semua kasus , kecuali untuk lingkaran yang sangat sempit dari prosedur sistem tingkat rendah. Hanya kompiler yang dapat memperhitungkan waktu pelaksanaan instruksi dan melakukan optimasi yang rumit seperti yang diperlukan untuk penggunaan sumber daya arsitektur yang efisien secara efisien.

Apa jenis program (algoritma) yang dapat diimplementasikan paling efisien pada E2K, termasuk dibandingkan dengan arsitektur lain yang memberikan paralelisme implisit?

Awalnya, Elbrus 2000 dirancang sebagai platform berkinerja tinggi untuk komputasi floating point, dan tidak ada rencana untuk beralih dari konsep ini - sebaliknya, sebaliknya: seperti yang telah disebutkan, langkah selanjutnya setelah 8C adalah menggandakan jumlah unit komputasi dari tipe nyata. Dengan demikian, jalur utama adalah program matematika, perhitungan ilmiah dan produksi. Khusus untuk tugas-tugas seperti itu, perpustakaan algoritma EML (Elbrus math library) dikembangkan dan dioptimalkan, dan kompiler LCC memiliki keterampilan khusus dalam mengubah beberapa templat kode sumber menjadi panggilan ke perpustakaan ini.

Poin kuat lainnya adalah keberadaan file register besar - hingga 256 register tersedia untuk program pada waktu tertentu, termasuk kemungkinan penggantian nama otomatis. Ini membuka jalan bagi optimasi berskala sangat besar. Misalnya, dalam ulasan CNews yang terkenal, tes gostcrypt ditampilkan.(ini adalah implementasi pribadi dari salah satu klien MTsST), di mana Elbrus-4C hampir menggandakan Core i7-2600 pada frekuensi yang lebih rendah - tidak ada penipuan, tetapi secara keliru disimpulkan bahwa alasannya adalah asal algoritma dalam negeri. GOST 28147-89. Faktanya, rahasia kesuksesan terletak pada kombinasi sukses dari struktur algoritma ini dengan karakteristik kuantitatif arsitektur E2K dan kemampuan kualitatif kompiler LCC untuk optimalisasi yang mendalam. Kompilator berhasil menggunakan seluruh siklus konversi dari satu blok dan menyatukannya ke dalam set kata perintah sekecil mungkin, memberikan pekerjaan dengan semua blok integer yang tersedia, dan ini adalah hasil yang mengesankan.

Bagaimana cara menulis program E2K yang efektif dalam C / C ++ dan Fortran? Apakah ada tutorial tentang hal ini?

Upaya untuk membuat panduan untuk arsitektur telah dilakukan, tetapi penulis kemudian menggali lebih dalam deskripsi perangkat keras, percaya bahwa setiap pembaca dapat menarik kesimpulan yang jelas dari bahan ini - ternyata kurang lebih sama dengan yang diterbitkan dalam buku terkenal "Microprocessors and Computing Complexes of Elbrus Family" . Adapun instruksi untuk programmer terapan, sayangnya, sejauh ini semua pengetahuan suci disimpan hanya di kepala staf yang terlibat dalam pengembangan compiler; kadang-kadang mereka membagikan wahyu mereka pada kuliah di Institut Fisika dan Teknologi Moskow, tetapi mereka belum matang untuk mengisi abstrak dalam bentuk buku. Sementara itu, disarankan untuk membaca rekomendasi untuk Itanium sebagai titik awal - secara konseptual, arsitektur ini sangat mirip dengan E2K.

Secara singkat, teknik utama dapat dirumuskan sebagai berikut.
  •   :   (inline),       , β€”    Β«Β». , ,    4  , , ,     .
  • :   likely  unlikely,   pragma loop count,  , .
  • : for, while,    break.
  •     , β€”     ,    . (   ,       .)
  • : ,    , β€”  ,   ,  x86. ,  , .
  • Gunakan fitur yang dioptimalkan sedapat mungkin, seperti perpustakaan EML yang disebutkan di atas. Seperti yang telah disebutkan, kompiler itu sendiri dapat menggantikan panggilan fungsi biasa dengan yang dioptimalkan, tetapi tidak mahakuasa, dan lebih baik untuk melakukan semuanya secara eksplisit.

Secara lebih rinci dan dengan contoh-contoh, metode-metode ini dan seluk-beluk lainnya direncanakan akan dibahas dalam artikel terpisah. MCST sangat menyadari pentingnya menyebarkan "teknik rahasia" di antara programmer untuk mengekstraksi produktivitas maksimum dari Elbrus, dan berencana untuk mulai membawa cahaya pengetahuan begitu komunitas dan infrastrukturnya terbentuk.

Apakah ada satu set contoh kode sumber yang siap pakai dalam C / C ++ dengan kesalahan akses memori untuk menunjukkan bagaimana teknologi eksekusi program yang aman memungkinkan menangkap kesalahan seperti itu pada tahap kompilasi dan eksekusi?

Tentu saja, ada seperangkat program - sebagai bagian dari alat pengujian regresi, yang dilakukan setiap malam. Anda juga dapat menggunakan contoh dari koleksi SAMATE dari American NIST Institute. Namun, untuk kejelasan (direncanakan untuk menulis artikel terpisah tentang topik ini), mungkin akan lebih mudah untuk menulis "file single-line" yang secara akurat menggambarkan setiap kesalahan secara terpisah.

Apakah Anda mempertimbangkan untuk menulis backend E2K untuk kompiler LLVM sebagai alternatif untuk LCC yang ingin menjadi seperti GCC?

Investigasi ke arah ini dilakukan, tentu saja, tetapi putusan sejauh ini agak negatif: arsitektur Elbrus-2000 sulit untuk dijelaskan menggunakan LLVM secara optimal. Artinya, kompiler alternatif dapat dirilis, tetapi kode mesin yang dihasilkannya akan kehilangan LCC dalam hal kecepatan. Namun arahan tidak dianggap buntu - ada kemungkinan bahwa seiring waktu backend ke LLVM akan tetap terwujud.

Dapatkah LCC menampilkan kesalahan dan peringatan dalam bentuk yang diterima oleh GCC sehingga pesan-pesan ini dikenali di lingkungan pengembangan (misalnya, Qt Creator)?

Saat ini tidak disediakan, tetapi tiket sudah dimulai di bugsilla.

Di mana saya bisa mendapatkan toolkit cross-kompilasi untuk E2K dari ruang kerja x86? Apakah ada proses terbalik - menghasilkan kode x86 dari lingkungan Elbrus, dan jika demikian, menggunakan versi khusus LCC, atau GCC biasa?

Alat kompilasi silang untuk E2K (mis., Kompiler LCC yang berjalan di Linux x86) tersedia atas permintaan. Proses sebaliknya tidak disediakan secara eksplisit: jika ini diperlukan, Anda dapat menjalankan beberapa sistem x86 pada Elbrus dalam mode terjemahan biner dan menggunakan kompiler yang tersedia di sana.

Teknologi virtualisasi apa yang didukung pada platform Elbrus?

Tidak ada dukungan sama sekali sekarang. Namun, akan segera dimungkinkan untuk menggunakan wadah.

Selain itu, pekerjaan pada pembuatan kernel paravirtual dari sistem operasi dan mekanisme untuk mendukung hypervisor KVM harus diselesaikan tahun ini, dan ini adalah cadangan utama di bagian yang bergantung pada arsitektur untuk menggunakan infrastruktur cloud yang lengkap seperti OpenStack. Sementara arsitektur lain, ketika bekerja di lingkungan Qemu / KVM, bergantung pada virtualisasi perangkat keras penuh, opsional menggunakan driver virtio paravirtual untuk I / O dan intersepsi instruksi istimewa yang didukung oleh prosesor itu sendiri, bagian yang bergantung pada arsitektur dari KVM sedang dikembangkan untuk Elbrus untuk menyediakan paravirtual mode operasi ketika sistem tamu bekerja erat dengan hypervisor dan bukannya mengeksekusi instruksi istimewa memanggil fungsi API hypercall.

Sudah diketahui umum bahwa Intel terus meningkatkan arsitekturnya dan meningkatkan arsitektur mikronya, sambil meningkatkan produktivitas. Bagaimana arsitektur Elbrus berkembang di bagian ini?

Pengembangan bergerak ke beberapa arah.
  • Fokusnya adalah pada peningkatan kinerja inti prosesor untuk mempercepat aplikasi single-threaded. Ini dicapai dengan meningkatkan jumlah operasi yang dijalankan secara simultan (diimplementasikan pada versi berikutnya, sistem perintah 4), menggunakan register yang lebih luas untuk operasi pada data vektor (diimplementasikan dalam versi ke-5), dan meningkatkan hirarki subsistem memori. Pada saat yang sama, kompatibilitas dengan versi arsitektur sebelumnya dipertahankan.
  • Arah kedua adalah peningkatan mikroprosesor sebagai sistem pada sebuah chip. Dengan perkembangan teknologi nanometer yang lebih halus dalam mikroprosesor, jumlah inti prosesor meningkat, jumlah saluran akses memori meningkat untuk menjaga keseimbangan mikroprosesor, dalam beberapa kasus ditambahkan inti grafis dan pengontrol tambahan untuk interaksi dengan perangkat periferal.

Akhirnya, peningkatan kompilator pengoptimalan memainkan peran penting, dengan bantuan yang memungkinkan untuk mengekstraksi paralelisme program dan mengubah kode menjadi kemampuan paralel arsitektur - seperti yang telah berulang kali ditekankan, kompiler sebenarnya merupakan bagian dari arsitektur. Cadangan kemampuan kompiler masih jauh dari kelelahan, MCST melihat di sini bidang yang sangat luas untuk upaya.

Terjemahan biner X86


Fitur dan batasan apa yang dimiliki oleh terjemahan biner?

Topik ini patut dipertimbangkan dalam artikel terpisah, tetapi gambaran singkatnya adalah sebagai berikut. Penyiaran dapat terdiri dari dua jenis - di tingkat sistem dan di tingkat aplikasi. Dalam kasus pertama, sistem operasi tamu menyediakan akses ke seluruh lingkungan perangkat keras komputer, dan dalam kedua, masing-masing, hanya panggilan sistem yang ditransfer dari program tamu ke kernel sistem host Linux. Ini dapat dibandingkan dengan emulator qemu-system-x86_64 dan  qemu-i386oleh karena itu, kompiler tidak meniru prosesor tamu, tetapi segera mengkompilasi ulang kode mesin tamu menjadi instruksi asli arsitekturnya. Selain itu, konversi dilakukan berkali-kali, secara bertahap meningkatkan tingkat optimasi untuk bagian kode yang paling umum, dan hasilnya disimpan dalam cache jangka panjang.

Penerjemah tingkat sistem (secara tidak resmi disebut "lintel" - "el-intel") mendukung set perintah x86 dan x86-64, dan penerjemah tingkat aplikasi ("rtc", yaitu, kompiler run time) sejauh ini hanya kompatibel dengan program 32-bit, - Versi 64-bit sedang dalam pengujian. Namun, kompatibilitas dengan arsitektur AMD64 / EM64T tidak berarti dukungan otomatis untuk semua set instruksi baru yang dapat ditemukan di berbagai prosesor Intel / AMD, seperti versi terbaru dari SSE, AVX, AES-NI - bendera yang sesuai dalam informasi CPUID tidak akan ada.

Bagaimana cara menggunakan penerjemah level sistem?

Sangat sederhana: ketika Anda memulai komputer Anda, Anda perlu menentukan kartu flash sebagai disk boot. Jika kartu ternyata kosong, atau pengguna sendiri menghapus sistem siaran dari sana, maka Anda dapat merekamnya lagi kapan saja dengan menyalin gambar dengan  perintah dd .

Penerjemah tingkat sistem memiliki BIOS dari desain aslinya, dan setelah memulai, urutan POST yang biasa muncul di layar, di mana Anda dapat pergi ke menu pengaturan. Sebagian besar pengaturan ini adalah yang paling umum, tetapi ada juga yang spesifik. Misalnya, Anda dapat sangat fleksibel mengontrol identifikasi prosesor dengan CPUID, mengubah tidak hanya nomor keluarga dan model atau flag kemampuan individu, tetapi juga nama teks - ini diperlukan untuk melawan perilaku anti-kompetitif dari program yang dikompilasi menggunakan Intel C ++ Compiler. Pilihan spesifik lainnya adalah konversi transparan kontroler SATA ke PATA untuk memastikan kompatibilitas dengan sistem operasi yang lebih luas. Tetapi, meskipun ada "tongkat ajaib", pengoperasian sistem operasi yang diinstal pada mesin x86 asli tidak dijamin,- Ini terutama berlaku untuk Windows dengan pengikatan lisensi untuk perangkat keras dan sikap hormat terhadap driver disk sistem.

Bagaimana cara menggunakan penerjemah level aplikasi?

Lebih sederhana lagi: dengan memulai program terjemahan, meneruskannya jalur ke aplikasi tamu dan jalur ke direktori root dari lingkungan yang diciptakan kembali. Seluruh pertanyaannya adalah bagaimana cara pertama mendapatkan gambar dari lingkungan ini. Sejauh ini, hanya lingkungan dari versi x86 sistem Elbrus yang disediakan secara standar, namun yang lain juga diperbolehkan. Jika klien merasa sulit untuk membentuk citra sistem yang diinginkan secara mandiri, spesialis MCST dapat memberikan bantuan yang diperlukan.

Dari di bawah aplikasi tamu yang berjalan (misalnya, juru bahasa perintah), pengguna dapat meluncurkan program tamu lainnya - sepenuhnya transparan. Pada satu titik waktu, beberapa contoh penerjemah dapat diluncurkan sekaligus, dan setiap contoh dapat bekerja di lingkungannya sendiri; oleh karena itu, misalnya, Anda dapat mencoba versi browser yang sama di distribusi yang berbeda, atau, sebaliknya, versi browser yang berbeda di sistem yang sama (tentu saja, contoh yang dibuat-buat, tetapi itu mengungkapkan esensinya).

Seseorang dapat memenuhi pernyataan bahwa dalam mode terjemahan biner beberapa benchmark mulai bekerja lebih cepat daripada yang awalnya dirakit untuk E2K. Untuk kelas program apa dan dalam kondisi apa ini memungkinkan?

Ini sangat mungkin, misalnya, ketika versi asli dari mesin JVM atau JS hanya dapat menafsirkan kode pengguna, dan versi x86 dibandingkan dengan itu memiliki kompiler JIT lengkap. Pada saat yang sama, meskipun ada beberapa siaran, kode byte yang dipilih untuk optimisasi pertama-tama dikompilasi ke dalam bahasa mesin x86, kemudian setelah beberapa waktu ia dikompilasi ulang menjadi E2K (apalagi, tiga kali, sekali untuk setiap level optimisasi), - lagi pula, keuntungan akhir dari kompilasi lebih besar daripada.

Adapun program C / C ++ asli, ada juga penjelasan logis, bahkan dua. Pertama, walaupun kompiler LCC melakukan tugas besar untuk mengoptimalkan kode yang dihasilkan, tidak ada yang dapat menjamin bahwa kompiler apa pun untuk x86, terutama yang komersial, tidak akan bekerja lebih baik dalam kasus tertentu. Kedua, lebih mungkin bahwa program yang dioptimalkan dengan baik untuk x86 hanya dikompilasi dengan mempertimbangkan profil pendahuluan akun, sementara kode sumber telanjang diumpankan ke kompiler LCC tanpa diminta. Tapi ceteris paribus, tentu saja, program asli harus bekerja setidaknya tidak lebih lambat dari yang disiarkan - jika ini tidak terjadi, laporan bug harus dikirim ke pengembang LCC.

Pengukuran kinerja


Menurut spesialis ICST, beberapa tolok ukur yang sebelumnya populer tidak dapat benar-benar mengungkapkan potensi dari salah satu platform yang ada. Ambil UnixBench yang sama - dengan segala hormat sehubungan dengan usianya yang terhormat, sudah lama usang dan sama-sama tidak cocok untuk prosesor modern dan sistem operasi. Kedua tes yang bergantung pada prosesor, Whetstone dan Dhrystone, secara praktis tidak diparalelkan dan tidak dapat dijalankan setidaknya dengan eksekusi luar biasa yang signifikan - bahkan pada arsitektur dengan paralelisme eksplisit, meskipun dengan implisit. Dan sisa tes umumnya "tentang tidak ada", alih-alih lebih baik menggunakan sesuatu yang lebih spesifik. Satu-satunya keunggulan UnixBench adalah sifatnya yang lintas platform, itulah mengapa masih digunakan sampai sekarang.

Anda juga tidak boleh lupa akan kekuatan profil yang kuat. Sebagai contoh, hasil tes 7-Zip yang nampaknya mencurigakan tinggi dalam ulasan CNews bukanlah tipuan, tetapi konsekuensi dari kompilasi dua-pass. Pertanyaan lain adalah berapa banyak optimasi seperti itu berguna dalam kasus umum, yaitu, pada data input sewenang-wenang. Karena alasan ini, hampir tidak masuk akal untuk membuat profil semua komponen dari tes Pgbench, karena kinerja Postgresql mungkin benar-benar berbeda pada data nyata. Tetapi dalam kasus khusus dengan 7-Zip, cukup mudah untuk memeriksa ulang: Anda perlu melakukan tes lain dengan mengirimkan koleksi berbagai file ke input. Satu-satunya masalah adalah bahwa jika file tidak terstandarisasi, maka mengulangi pengujian dengan cara yang sama tidak akan bekerja untuk siapa pun yang menginginkannya, dan akan ada bahkan kurang percaya diri dalam hasil yang dipublikasikan.

Anda harus menyadari bahwa tolok ukur sintetis sering ditulis dengan mata pada arsitektur tertentu (termasuk karena penulisnya terbiasa berpikir seperti ini), atau disesuaikan dengan kombinasi perangkat keras dan kompiler tertentu. Misalnya, tes SPECcpu yang terkenal menyatakan objektivitas dan ketidakberpihakan, namun, dalam kode sumber versi 2006 Anda dapat menemukan komentar bahwa kruk ini atau itu ditambahkan khusus untuk Intel C ++ Compiler. Dan bagaimana orang tidak dapat mencurigai pengaruh vendor besar ketika 90% dari catatan mencatat 36,6 ribu hasil yang dipublikasikan?

Aplikasi nyata juga tidak selalu merupakan indikator, karena bagian paling kritis dapat ditulis secara lengkap dalam assembler x86 atau berisi banyak insert assembler dan panggilan ke fungsi khusus (intrinsik), yang contohnya adalah OpenSSL. Ternyata kode mesin dijilat untuk bersinar dibandingkan dengan implementasi bahasa tingkat tinggi, tujuan utamanya adalah untuk menjadi referensi, dan tidak optimal.

Oleh karena itu, tawaran kepada pembaca: mari kita pikirkan bersama tes mana - buatan atau dekat dengan kehidupan - yang dapat dilakukan untuk melihat seberapa kuat Elbrus dalam tugas yang relevan. Tidak perlu bahwa ini adalah program yang sudah jadi, terutama yang berkaitan dengan perhitungan matematis, karena, katakanlah, perkalian matriks - ini juga perkalian matriks di Afrika: kompleksitas tugasnya sama apakah itu dilakukan dengan perpustakaan EML, BLAS / LAPACK yang dioptimalkan atau fungsi yang ditulis sendiri. Tinggalkan ide Anda di komentar.

Penulis berterima kasih kepada staf ICST untuk penjelasan yang terperinci dan menarik.

Source: https://habr.com/ru/post/id391259/


All Articles