shared memory management for visualworks
DESCRIPTION
Shared Memory Management for VisualWorksTRANSCRIPT
![Page 1: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/1.jpg)
Shared Memory Management for VisualWorks
![Page 3: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/3.jpg)
Shared Memory Management for VisualWorks
![Page 4: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/4.jpg)
shared memory
What?
Why?
http://www.flickr.com/photos/ben_salter/
![Page 5: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/5.jpg)
Personal Experience:software assessment project
huge customer project took 4 hours!
![Page 6: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/6.jpg)
Polycephaly
= use all CPUs
![Page 7: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/7.jpg)
Polycephaly Example| drones result |drones := VirtualMachines new: 4.result := drones
do: '[:a :b | a + b]' with: #(1 2 3 4 5) with: #(5 4 3 2 1).
result = #(6 6 6 6 6)
![Page 8: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/8.jpg)
Project “Software Assessment”
Perfect options for task distribution (per package, class)
Disappointing results: Communication overhead consumed all time gains
Needs to report much results
![Page 9: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/9.jpg)
Shared Memory
= more speed?
![Page 10: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/10.jpg)
Tools Architecture
![Page 11: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/11.jpg)
Application Scheme
CPU 1
MASTER
CPU 2
DRONEShared Memory
Remote Semaphore
![Page 12: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/12.jpg)
RemoteSemaphore
• Mutually exclusive Shared Memory access
• Created by master image• Twin in drone image• Synchronized via OS event messages
![Page 13: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/13.jpg)
SemaphoreEventRelay
• Organize connection to other images• Instances in connected images• Communication center for remote semaphore
messages– #signalRemote– #waitRemote
![Page 14: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/14.jpg)
SharedMemory-ExampleAppo Install Shared Memoryo Start Polycephaly drone.o Start drone client, use Shared
Memory.o Start drone service
for pure Shared Memory use cases.o Run profiler.
![Page 15: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/15.jpg)
Time Profiles
![Page 16: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/16.jpg)
Shared memory raw read/write
Read bytes Time (µs) Write bytes Time (µs) Read+write Time (µs) <= 1,000 <= 1 1,000 1 1,000 1
10,000 3 10,000 1 10,000 3 100,000 53 100,000 8 100,000 23
1,000,000 509 1,000,000 80 1,000,000 343
![Page 17: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/17.jpg)
Shared memory raw read/write
0 1 2 3 4 5 60.00
0.50
1.00
1.50
2.00
2.50
3.00
Shared mem write+read 10x bytes
write read
write+read
10x bytes
log µs
![Page 18: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/18.jpg)
Shared Memory Overhead
• SemaphoreEventRelay mutex roundtrip– with OS event messages = 117 µs– with UDP socket messages = 399 µs
![Page 19: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/19.jpg)
Polycephaly Use Cases
Overhead: Request to evaluate the empty block = 12,519 µs
request bytes Time (µs) Request Array of size Time (µs) 10 9,387 10 8,185
100 8,499 100 9,387 1,000 8,327 1,000 12,001
10,000 10,478 10,000 25,702 100,000 21,463 100,000 166,141
1,000,000 123,933 1,000,000 1,518,115
![Page 20: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/20.jpg)
Polycephaly with Shared Memory
• Polycephaly requests, result via protected shared memoryrequest bytes Time (µs) factor request Array of size Time (µs) factor
1 16,434 1.8 1 17,133 2.4 10 15,425 1.6 10 18,281 2.2
100 15,346 1.8 100 17,277 1.8 1,000 15,344 1.8 1,000 18,327 1.5
10,000 15,324 1.5 10,000 18,010 0.7 100,000 15,341 0.7 100,000 23,810 0.1
1,000,000 17,883 0.1 1,000,000 104,050 0.1
![Page 21: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/21.jpg)
Shared Memory Command And Data Exchange
• Shared memory command, protected write, unprotected read
request Array of size Time (µs) Polycephaly time (µs)
factor
10 307 8,185 0.04 100 312 9,387 0.03
1,000 397 12,001 0.03 10,000 1,372 25,702 0.05
100,000 10,604 166,141 0.06 1,000,000 99,093 1,518,115 0.07
![Page 22: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/22.jpg)
![Page 23: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/23.jpg)
Fractal Explorer
Shared Memory data exchange saves 5 seconds
from a total of 109 seconds…
![Page 24: Shared Memory Management for VisualWorks](https://reader033.vdocuments.mx/reader033/viewer/2022052322/558455fcd8b42afc4e8b53de/html5/thumbnails/24.jpg)
Conclusions
• Shared Memory can speed up transfer significantly– massive data exchange– simple data
• Impressive reduction potential of 97% • Perspectives for applications that suffer from
high load for data exchange.