Apa yang dimaksud dengan 'konkurensi sejati'?

28

Saya sering mendengar frasa seperti 'semantik konkurensi sejati' dan 'kesetaraan konkurensi sejati' tanpa referensi. Apa arti istilah-istilah itu dan mengapa itu penting?

Apa saja contoh kesetaraan konkurensi yang sebenarnya dan apa perlunya bagi mereka? Misalnya dalam kasus mana mereka lebih berlaku daripada lebih banyak persamaan standar (bisimulasi, jejak kesetaraan, dll)?

Daniil
sumber

Jawaban:

23

Istilah "konkurensi sejati" muncul dalam studi teoretis tentang perhitungan konkuren dan paralel. Ini berbeda dengan konkurensi interleaving. Konkurensi sejati adalah konkurensi yang tidak dapat direduksi menjadi interleaving. Konkurensi disisipkan jika pada setiap langkah dalam perhitungan, hanya satu tindakan komputasi atom (mis. Pertukaran pesan antara pengirim dan penerima) dapat terjadi. Konkurensi benar jika lebih dari satu aksi atom terjadi dalam satu langkah.

Cara paling sederhana untuk membedakan keduanya adalah dengan melihat aturan komposisi paralel. Dalam pengaturan berbasis interleaving, akan terlihat seperti ini:

PPP|QP|Q

Aturan ini menegaskan bahwa hanya satu proses dalam komposisi paralel yang dapat melakukan aksi atom. Untuk konkurensi sejati, aturan seperti berikut ini akan lebih tepat.

PPQQP|QP|Q

Aturan ini memungkinkan kedua partisipan dalam komposisi paralel untuk melakukan aksi atom.

Mengapa orang tertarik pada konkurensi interleaved, ketika teori konkurensi benar-benar mempelajari sistem yang menjalankan langkah-langkah komputasi secara paralel? Jawabannya adalah, dan itu adalah wawasan yang hebat, bahwa untuk bentuk-bentuk sederhana pesan yang melewati konkurensi, konkurensi sejati dan konkurensi berbasis interleaving tidak dapat dibedakan secara kontekstual. Dengan kata lain, konkurensi bertautan berperilaku seperti konkurensi sejati sejauh yang bisa dilihat oleh pengamat. Interleaving adalah dekomposisi yang baik dari konkurensi sejati. Karena interleaving lebih mudah ditangani dalam pembuktian, orang sering hanya mempelajari konkurensi berbasis interleaving yang lebih sederhana (misalnya CCS dan π-kalkulus). Namun, kesederhanaan ini menghilang untuk perhitungan bersamaan dengan bentuk pengamatan yang lebih kaya (mis. Perhitungan waktunya): perbedaan antara konkurensi sejati dan konkurensi interleaved menjadi dapat diamati.

Kesetaraan standar seperti bisimulasi dan jejak memiliki definisi yang sama untuk konkurensi berbasis true dan interleaving. Tetapi mereka mungkin atau mungkin tidak menyamakan proses yang berbeda, tergantung pada kalkulus yang mendasarinya.

Biarkan saya memberikan penjelasan informal tentang mengapa interleaving dan interaksi yang benar-benar bersamaan tidak dapat dibedakan dalam kalki proses sederhana. Pengaturannya adalah CCS atau kalkulus seperti . Katakanlah kita punya programπ

Kemudian kita memiliki reduksi yang benar-benar bersamaan: P

P=x¯ | y¯ | x.y.Sebuah¯ | y.b¯
Langkah reduksi ini dapat dicocokkan dengan langkah-langkah disisipkan berikut: P
Py.Sebuah¯ | b¯
Satu-satunya perbedaan antara keduanya adalah bahwa yang pertama mengambil satu langkah, sedangkan yang kedua. Tetapi batu sederhana tidak dapat mendeteksi jumlah langkah yang digunakan untuk mencapai suatu proses.
Px¯ | x.y.Sebuah¯ | b¯y.Sebuah¯ | b¯

Pada saat yang sama, memiliki urutan reduksi interleaved kedua berikut: PP

Py¯ | y.Sebuah¯ | y.b¯Sebuah¯ | y.b¯
Martin Berger
sumber
Terima kasih, jawaban yang bagus! Bisakah Anda memberi saya beberapa referensi untuk bacaan lebih lanjut?
Daniil
π
0

Sejujurnya, saya sendiri mencari jawaban di Google. Apa yang dimaksud dengan semantik di sini? Kami memberikan arti "sistem transisi" ke deskripsi "aljabar proses"; artinya adalah sistem transisi yang dihasilkan dari deskripsi sistem awal menggunakan aturan SOS yang ditentukan. Dengan demikian, menggunakan semantik interleaving, kita kehilangan semua struktur bersamaan dalam sistem transisi yang diperoleh.

Jawaban lain bisa jadi itu bukan "perbedaan yang dapat diamati" tetapi perbedaan dalam "kemampuan diamati". Menggunakan semantik interleaving, kita dapat mengamati hanya menjalankan linier; sementara, dengan menggunakan konkurensi sejati, kita dapat mengamati "berjalan berbarengan" (cf W.Reisig'13 Petri nets book).

Namun, saya masih ragu dengan apa yang saya katakan di atas, dan akan menarik untuk mendengar wawasan yang lebih dalam. Yaitu, menggunakan jam vektor Lamport, berapa banyak teori relativitas dapat ditransfer ke teori konkurensi.

Leonid Dworzanski
sumber
1
Bahwa langkah dari program konkuren ke sistem transisi dapat dibuat dengan cara lossy telah diamati sejak awal. John Reynolds merumuskan apa yang sekarang dikenal sebagai kriteria Reynolds, untuk menjadi ciri ketika interleaving semantik akurat untuk program bersamaan variabel-bersama. Vaughan Pratt menyelidiki konkurensi sejati sebagai model P 1986 dan, bersama dengan Gordon Plotkin, menunjukkan ketika keberpihakan urutan tindakan dapat diamati P&P, 1987 .
Kai
@ Kai, referensi sangat dihargai! Saya akan menuliskannya jika tautannya akan diputuskan: Vaughan Pratt, Pemodelan Concurrency dengan Pesanan Sebagian; G. Plotkin V. Pratt, Tim Dapat Melihat Pomsets. > dapat dibuat dengan cara lossy Tentu saja, saya hanya ingin membersihkan konsep terpisah dalam "deskripsi sintaksis / semantik / makna".
Leonid Dworzanski