I decided to do a strange, but potentially very nifty thing, and share memory between two or more squeak applications on the Mac, but I find I canβt even get startedβ¦
What Iβd like to do is manually set the pointer for a Bitmap in Image A so that it points to the same shared memory as the BitMap in Image B (and C and D andβ¦) and then display the Image Bitmap while B (C, etc) asynchronously draw into the same shared memory. The immediate usecase would be doing a multi-process Mandelbrot Set drawing app where the Image A is for display and menu selection while the remaining Images do the calculations and setting of pixels. Is this doable out-of-the-box in Squeak, or must I write a plugin first? If so, what do I need to do?
If I do need to write a plug-in, how do I do it. Iβve read on the wiki about the Surface Plugin, but not quite sure if that is what I need or not.
Thanks.
L
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
https://learn.microsoft.com/en-us/windows/win32/memory/sharing-files-and-mem... [https://learn.microsoft.com/en-us/windows/win32/memory/sharing-files-and-mem...]
https://learn.microsoft.com/en-us/windows/win32/memory/creating-named-shared... [https://learn.microsoft.com/en-us/windows/win32/memory/creating-named-shared...]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Best, Marcel Am 29.03.2023 21:11:28 schrieb LawsonEnglish lenglish5@cox.net: I decided to do a strange, but potentially very nifty thing, and share memory between two or more squeak applications on the Mac, but I find I canβt even get startedβ¦
What Iβd like to do is manually set the pointer for a Bitmap in Image A so that it points to the same shared memory as the BitMap in Image B (and C and D andβ¦) and then display the Image Bitmap while B (C, etc) asynchronously draw into the same shared memory. The immediate usecase would be doing a multi-process Mandelbrot Set drawing app where the Image A is for display and menu selection while the remaining Images do the calculations and setting of pixels. Is this doable out-of-the-box in Squeak, or must I write a plugin first? If so, what do I need to do?
If I do need to write a plug-in, how do I do it. Iβve read on the wiki about the Surface Plugin, but not quite sure if that is what I need or not.
Thanks.
L
On Thu, Mar 30, 2023 at 09:47:12AM +0200, Marcel Taeumel via Squeak-dev wrote:
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
https://learn.microsoft.com/en-us/windows/win32/memory/sharing-files-and-mem... [https://learn.microsoft.com/en-us/windows/win32/memory/sharing-files-and-mem...]
https://learn.microsoft.com/en-us/windows/win32/memory/creating-named-shared... [https://learn.microsoft.com/en-us/windows/win32/memory/creating-named-shared...]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Also, you will want to make sure that your object is pinned, see Object>>pin. The reason is that the garbage collector will otherwise move your object around in the object memory, which would make the pointer invalid, hence VM crash when you later read or write using that pointer.
Dave
Best, Marcel Am 29.03.2023 21:11:28 schrieb LawsonEnglish lenglish5@cox.net: I decided to do a strange, but potentially very nifty thing, and share memory between two or more squeak applications on the Mac, but I find I can???t even get started???
What I???d like to do is manually set the pointer for a Bitmap in Image A so that it points to the same shared memory as the BitMap in Image B (and C and D and???) and then display the Image Bitmap while B (C, etc) asynchronously draw into the same shared memory. The immediate usecase would be doing a multi-process Mandelbrot Set drawing app where the Image A is for display and menu selection while the remaining Images do the calculations and setting of pixels. Is this doable out-of-the-box in Squeak, or must I write a plugin first? If so, what do I need to do?
If I do need to write a plug-in, how do I do it. I???ve read on the wiki about the Surface Plugin, but not quite sure if that is what I need or not.
Thanks.
L
On Mar 30, 2023, at 10:16, David T. Lewis lewis@mail.msen.com wrote:
On Thu, Mar 30, 2023 at 09:47:12AM +0200, Marcel Taeumel via Squeak-dev wrote:
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar⦠[urls deleted]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Also, you will want to make sure that your object is pinned, see Object>>pin. The reason is that the garbage collector will otherwise move your object around in the object memory, which would make the pointer invalid, hence VM crash when you later read or write using that pointer.
Dave
Thanks. Iβve used FFI before, and have several references to shared memory on the Mac (other OSβs have similar facilities). The real question is about setting a pointer to the memory used by a Bitmap object.
Getting FFI to work with the latest version of Mac OS X is often quite painful due to all the security-related hoops you must jump through to give permission to an app to access libraries outside the appβs own set. I *think* that Appleβs built in shared memory API wonβt be as covoluted to use via FFI as other libraries are, but havenβt tested it on Mac OS X 13.x (Ventura).
The real question is about setting the pointer that a Bitmap (in two or more images) uses. ELiot kindly offered to mentor me through the process of writing plugins. The real question is: am I up for that?
L
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
[URLS deleted to satisfy my malfunctioning ISP mailing system]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Best, Marcel
If I'm remembering correctly the SurfacePlugin is intended to handle external bitmaps, ie memory not in the main object space. that would obviate the need to worry about pinning or GC issues.
The trick then would be to provide a way to access the external memory chunk from several processes. You *might* even want to use the HostWindowPlugin to open a separate window on that bitmap?
On 2023-03-30, at 3:29 PM, LawsonEnglish LEnglish5@cox.net wrote:
Thanks. Iβve used FFI before, and have several references to shared memory on the Mac (other OSβs have similar facilities). The real question is about setting a pointer to the memory used by a Bitmap object.
Getting FFI to work with the latest version of Mac OS X is often quite painful due to all the security-related hoops you must jump through to give permission to an app to access libraries outside the appβs own set. I *think* that Appleβs built in shared memory API wonβt be as covoluted to use via FFI as other libraries are, but havenβt tested it on Mac OS X 13.x (Ventura).
The real question is about setting the pointer that a Bitmap (in two or more images) uses. ELiot kindly offered to mentor me through the process of writing plugins. The real question is: am I up for that?
L
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
[URLS deleted to satisfy my malfunctioning ISP mailing system]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Best, Marcel
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: L: Lie!
Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
Best, Marcel Am 31.03.2023 00:30:05 schrieb LawsonEnglish lenglish5@cox.net: Thanks. Iβve used FFI before, and have several references to shared memory on the Mac (other OSβs have similar facilities). The real question is about setting a pointer to the memory used by a Bitmap object.
Getting FFI to work with the latest version of Mac OS X is often quite painful due to all the security-related hoops you must jump through to give Β permission to an app to access libraries outside the appβs own set. I *think* that Appleβs built in shared memory API wonβt be as covoluted to use via FFI as other libraries are, but havenβt tested it on Mac OS X 13.x (Ventura).
The real question is about setting the pointer that a Bitmap (in two or more images) uses. ELiot kindly offered to mentor me through the process of writing plugins. The real question is: am I up for that?
L
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
[URLS deleted to satisfy my malfunctioning ISP mailing system]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Best, Marcel
Hi Marcel,
On Mar 31, 2023, at 12:49 AM, Marcel Taeumel via Squeak-dev squeak-dev@lists.squeakfoundation.org wrote:
ο»Ώ Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
While sharing pointers between processes imposes vi strainers it isnβt necessarily impossible. As long as the memory being shared is shared at the same addresses in all processes then it is safe to use pointers to this memory.
This is the basis of VisualWorksβ perm space, they shares most of the image file between processes (shared, when it worked; it stopped working at some point).
Imagine the image file is loaded at startup by memory mapping, and that it is mapped at the same address. Note that to do so one does NOT have to defeat address space randomization, which is about where the executable is loaded, but where the image file is mapped, which could be at a very high or very low address to avoid ASR collisions with the executable. And if all objects in the mapped space are marked, and the GC leaves them alone if marked, then this can effectively share an image which is used to run a canned application between multiple instances. I believe the Pharo team are rifling on this for (their fork of) Spur.
So this exercise should be considered more generally. What is most useful? IMO being able to share objects is best. Given that sharing arbitrary objects can be difficult Iβll settle for being able to share large non-pointer objects, e.g. ByteArrays, and accessing them directly.
Best, Marcel
Am 31.03.2023 00:30:05 schrieb LawsonEnglish lenglish5@cox.net:
Thanks. Iβve used FFI before, and have several references to shared memory on the Mac (other OSβs have similar facilities). The real question is about setting a pointer to the memory used by a Bitmap object.
Getting FFI to work with the latest version of Mac OS X is often quite painful due to all the security-related hoops you must jump through to give permission to an app to access libraries outside the appβs own set. I *think* that Appleβs built in shared memory API wonβt be as covoluted to use via FFI as other libraries are, but havenβt tested it on Mac OS X 13.x (Ventura).
The real question is about setting the pointer that a Bitmap (in two or more images) uses. ELiot kindly offered to mentor me through the process of writing plugins. The real question is: am I up for that?
L
Hi --
I would use SqueakFFI and through that interface a system library for memory shared between processes. Maybe through memory-mapped files or similar...
[URLS deleted to satisfy my malfunctioning ISP mailing system]
Once you have your ExternalAddress for that shared memory region, you can start reading and writing bytes from multiple Squeak images. Watch out for synchronization/locking etc.
Best, Marcel
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
The real question is about setting a pointer to the memory used by a
Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
-
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
-
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
-
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
-
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
-
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
-
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
-
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
-
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
-
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
-
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
-
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
-
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
-
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
Lawson
On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote:
Hi L --
> The real question is about setting a pointer to the memory used by a Bitmap object.
I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable.
The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant.
The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
Lawson
> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: > > Hi L -- > >> The real question is about setting a pointer to the memory used by a Bitmap object. > > I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Please multiply 9 by any number and add the digits recursively to a single digit. π°
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:59, rabbit rabbit@callistohouse.org wrote:
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote:
> The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable. > > The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant. > > The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol.
And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
> Lawson > >> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: >> >> Hi L -- >> >>> The real question is about setting a pointer to the memory used by a Bitmap object. >> >> I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there.
--
_,,,^..^,,,_ best, Eliot
Trinary transistors and base-3 logic�
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:18, rabbit rabbit@callistohouse.org wrote:
Please multiply 9 by any number and add the digits recursively to a single digit. π°
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:59, rabbit rabbit@callistohouse.org wrote:
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote:
> On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote: > >> The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable. >> >> The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant. >> >> The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol. > > And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed.
yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. Thanks for all this! π°
>> Lawson >> >>> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: >>> >>> Hi L -- >>> >>>> The real question is about setting a pointer to the memory used by a Bitmap object. >>> >>> I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there. > > -- > > _,,,^..^,,,_ > best, Eliot
Off In-Between On
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:49, rabbit rabbit@callistohouse.org wrote:
Trinary transistors and base-3 logic�
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:18, rabbit rabbit@callistohouse.org wrote:
Please multiply 9 by any number and add the digits recursively to a single digit. π°
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:59, rabbit rabbit@callistohouse.org wrote:
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor.
β’β’β’
The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor.
A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented.
The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include:
Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously.
Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core.
Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources.
Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe.
Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling.
Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote:
> β > Have a good one; keep it, light. > Kindly, rabbit . .. β¦ ββ¦^,^ πππ > > Sent from Callisto House mobile - Ganymede > :: decentralized mobile homeless solutions :: > > On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote: > >> On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote: >> >>> The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable. >>> >>> The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant. >>> >>> The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol. >> >> And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed. > > yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. > Thanks for all this! π° > >>> Lawson >>> >>>> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: >>>> >>>> Hi L -- >>>> >>>>> The real question is about setting a pointer to the memory used by a Bitmap object. >>>> >>>> I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there. >> >> -- >> >> _,,,^..^,,,_ >> best, Eliot
3-9-27-81-243-729-2,187 <3^7>
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:54, rabbit rabbit@callistohouse.org wrote:
Off In-Between On
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:49, rabbit rabbit@callistohouse.org wrote:
Trinary transistors and base-3 logic�
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:18, rabbit rabbit@callistohouse.org wrote:
Please multiply 9 by any number and add the digits recursively to a single digit. π°
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:59, rabbit rabbit@callistohouse.org wrote:
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
Last one.
β’β’β’
Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core.
β’β’β’
Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account:
Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units.
Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling.
Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe.
Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture.
Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism.
Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution.
Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors.
Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits.
Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability.
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote:
> Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor. > > β’β’β’ > > The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor. > > A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented. > > The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include: > > - > > Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously. > > - > > Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core. > > - > > Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources. > > - > > Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe. > > - > > Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling. > > Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power. > > β > Have a good one; keep it, light. > Kindly, rabbit . .. β¦ ββ¦^,^ πππ > > Sent from Callisto House mobile - Ganymede > :: decentralized mobile homeless solutions :: > > On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote: > >> β >> Have a good one; keep it, light. >> Kindly, rabbit . .. β¦ ββ¦^,^ πππ >> >> Sent from Callisto House mobile - Ganymede >> :: decentralized mobile homeless solutions :: >> >> On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote: >> >>> On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote: >>> >>>> The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable. >>>> >>>> The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant. >>>> >>>> The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol. >>> >>> And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed. >> >> yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. >> Thanks for all this! π° >> >>>> Lawson >>>> >>>>> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: >>>>> >>>>> Hi L -- >>>>> >>>>>> The real question is about setting a pointer to the memory used by a Bitmap object. >>>>> >>>>> I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there. >>> >>> -- >>> >>> _,,,^..^,,,_ >>> best, Eliot
Negative Zero Positive
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:57, rabbit rabbit@callistohouse.org wrote:
3-9-27-81-243-729-2,187 <3^7>
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:54, rabbit rabbit@callistohouse.org wrote:
Off In-Between On
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:49, rabbit rabbit@callistohouse.org wrote:
Trinary transistors and base-3 logic�
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 20:18, rabbit rabbit@callistohouse.org wrote:
Please multiply 9 by any number and add the digits recursively to a single digit. π°
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:59, rabbit rabbit@callistohouse.org wrote:
Basic <TriTryZ> sub-chip architecture β’ 3 cores β’ 9 threads https://www.dropbox.com/s/iak13m1wb4951tv/TryTryZ.png?dl=0
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:46, rabbit rabbit@callistohouse.org wrote:
Enough binary thinking, thereβs always a third. Always.
3 GHz!!! π€
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Fri, Mar 31, 2023 at 19:42, rabbit rabbit@callistohouse.org wrote:
> Last one. > > β’β’β’ > > Yo <hat> Describe the detailed design considerations building a triple hyper-threaded multi-core processor, with 3 threads per core. > > β’β’β’ > > Designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a number of design factors, including architecture, power management, interconnects, and memory hierarchy. Here are some detailed design considerations that could be taken into account: > > - > > Architecture: The processor architecture should be designed to support multiple cores with hyper-threading capabilities. Each core should have sufficient resources to execute three threads simultaneously, including dedicated registers, execution units, and branch prediction units. > > - > > Power Management: Since a multi-core processor can consume a significant amount of power, advanced power management techniques should be employed to balance performance and power consumption. This could include techniques such as dynamic frequency scaling, power gating, or voltage scaling. > > - > > Interconnects: A high-speed interconnect should be designed to allow fast communication between processor cores and other system components. This could include high-speed buses such as PCIe or NVMe. > > - > > Memory Hierarchy: An efficient memory hierarchy should be designed to minimize memory access latencies and to ensure that each core has sufficient bandwidth to access memory. This could include a shared L3 cache and a distributed memory architecture. > > - > > Instruction Set Architecture: The instruction set architecture should be designed to support the parallel execution of multiple threads, including support for instruction-level parallelism and data-level parallelism. > > - > > Branch Prediction: Advanced branch prediction units should be designed to minimize the impact of branch mispredictions on performance. This could include techniques such as dynamic branch prediction and speculative execution. > > - > > Clock Frequency: To maximize performance, the processor should be designed to operate at a high clock frequency, with clock rates in excess of 3 GHz being typical for high-performance multi-core processors. > > - > > Thermal Design: A high-performance multi-core processor can generate a significant amount of heat, so an efficient thermal design should be implemented to ensure that the processor operates within its thermal limits. > > Overall, designing a triple hyper-threaded multi-core processor with 3 threads per core requires careful consideration of a wide range of design factors, with a focus on optimizing performance, power consumption, and reliability. > > β > Have a good one; keep it, light. > Kindly, rabbit . .. β¦ ββ¦^,^ πππ > > Sent from Callisto House mobile - Ganymede > :: decentralized mobile homeless solutions :: > > On Fri, Mar 31, 2023 at 19:36, rabbit rabbit@callistohouse.org wrote: > >> Yo <hat> :: Yeah :: How could the opensmalltalk VM benefit from running on new design prospects fabricating a triple hyper-threaded multi core processor? Describe the design and architecture of such a triple hyper-threaded multi core processor. >> >> β’β’β’ >> >> The OpenSmalltalk VM could benefit even further from running on a new design prospect fabricating a triple hyper-threaded multi-core processor. >> >> A triple hyper-threaded multi-core processor would combine the benefits of multiple processor cores and hyper-threading, allowing for even greater parallelism and throughput. Each core in the processor would be capable of executing multiple threads simultaneously, with the number of threads per core determined by the level of hyper-threading implemented. >> >> The design and architecture of a triple hyper-threaded multi-core processor would depend on a number of factors, including the target use case and performance requirements. However, some general design considerations and features could include: >> >> - >> >> Multiple cores: A triple hyper-threaded multi-core processor would include three or more processor cores, each capable of executing multiple threads simultaneously. >> >> - >> >> Hyper-threading: Each core would support hyper-threading, allowing for additional threads to be executed in parallel. The number of threads per core would depend on the level of hyper-threading implemented, with higher levels allowing for more threads per core. >> >> - >> >> Shared resources: To maximize performance, a triple hyper-threaded multi-core processor would likely include shared resources such as a shared L3 cache or memory controller. These shared resources would allow the processor cores to more efficiently access shared data and resources. >> >> - >> >> Interconnects: To ensure high-speed communication between processor cores and other system components, a triple hyper-threaded multi-core processor would likely include high-speed interconnects such as PCIe, SATA, or NVMe. >> >> - >> >> Power management: To balance performance and power consumption, a triple hyper-threaded multi-core processor would likely include advanced power management features such as dynamic frequency scaling, power gating, or voltage scaling. >> >> Overall, the design and architecture of a triple hyper-threaded multi-core processor would be optimized for high levels of parallelism and throughput, making it well-suited for use in high-performance computing environments and applications that require significant computational power. >> >> β >> Have a good one; keep it, light. >> Kindly, rabbit . .. β¦ ββ¦^,^ πππ >> >> Sent from Callisto House mobile - Ganymede >> :: decentralized mobile homeless solutions :: >> >> On Fri, Mar 31, 2023 at 19:25, rabbit rabbit@callistohouse.org wrote: >> >>> β >>> Have a good one; keep it, light. >>> Kindly, rabbit . .. β¦ ββ¦^,^ πππ >>> >>> Sent from Callisto House mobile - Ganymede >>> :: decentralized mobile homeless solutions :: >>> >>> On Fri, Mar 31, 2023 at 19:16, Eliot Miranda eliot.miranda@gmail.com wrote: >>> >>>> On Fri, Mar 31, 2023 at 2:39β―PM LawsonEnglish LEnglish5@cox.net wrote: >>>> >>>>> The Shared Memory facility in most modern OSβs (Mac, Linux and Windows) will allow a pointer between processes. The problem is to get it working with Squeak. Eliot outlined the issues in his response. They are more convoluted than I was hoping for, but presumably it's doable. >>>>> >>>>> The point of doing it is to create a shared memory IPC option for Squeak, as, in principle, that is the fastest way of doing IPC, and if youβre sharing large chunks of data (e.g. the pixels of an image), the savings can be significant. >>>>> >>>>> The Mandelbrot Set is simply a simple (and potentially entertaining) way of providing visual feedback that its actually working. Its actually not a good use case for shared memory IPC because, as you drill down into the Set, the time spent for calculations is far more than the time saved using the shared memory, but it would visually demonstrate that something is happening, and far less boring than simply sending arbitrary chunks of memory during testing of the protocol. >>>> >>>> And note that with image segments one could exchange arbitrary object graphs above a memory-mapped word array with relative ease and speed. >>> >>> yes, please. I see a Trinity process unit, one user, one comms marshaling and signaling, one Broker, managing naming, bridge mgmt and cache replication/replant ops. DevOps. >>> Thanks for all this! π° >>> >>>>> Lawson >>>>> >>>>>> On Mar 31, 2023, at 00:49, Marcel Taeumel via Squeak-dev wrote: >>>>>> >>>>>> Hi L -- >>>>>> >>>>>>> The real question is about setting a pointer to the memory used by a Bitmap object. >>>>>> >>>>>> I would not do that, I don't think it is possible as each project has its own address space. Virtual memory and so on... You cannot simply share pointers between processes. Thus, allocate some inter-process memory and copy initial data (from any Squeak object memory) to there. Then read/write it there. >>>> >>>> -- >>>> >>>> _,,,^..^,,,_ >>>> best, Eliot
Last one? Iβm bringing it back to shared image processing.
β’β’β’
<hat> what is the performance comparison between classic binary logic transistors and transistors with 3 logic state in processing shared image data?
β’β’β’
When it comes to processing shared image data, the choice between classic binary logic transistors and transistors with 3 logic states depends on the specific requirements of the image processing algorithm.
Ternary logic, which uses three logic states, has the potential to provide advantages in image processing applications that involve high-resolution images with large amounts of data. With ternary logic, more information can be conveyed per unit of time, which can lead to faster processing speeds and reduced power consumption. Additionally, the increased information density of ternary logic can potentially reduce the memory requirements for storing image data, which can be particularly useful in embedded systems with limited resources.
However, the design and implementation of ternary logic circuits can be more complex than binary logic circuits, which can result in higher manufacturing costs and longer development times. Additionally, there may be fewer commercially available components and design tools for ternary logic compared to binary logic, which can further increase the complexity and cost of implementing ternary logic in practical image processing applications.
In summary, while ternary logic has the potential to provide advantages in image processing applications that involve high-resolution images with large amounts of data, the choice between binary and ternary logic ultimately depends on the specific requirements of the image processing algorithm and the trade-offs between performance, cost, and complexity.
>>>>>
Um. Hat, what is the most performant available binary to trinary base converter circuit for use in integrated circuits? Share a link to an available device for sale.
β’β’β’
As an AI language model, I do not have access to the most up-to-date information about the current state of technology or available devices for sale. However, I can provide some general information on binary to trinary base converter circuits.
Binary to trinary base conversion can be achieved using different circuit implementations, such as combinational logic circuits or sequential logic circuits. Combinational logic circuits perform the conversion in a single step, while sequential logic circuits perform the conversion in multiple steps.
In terms of performance, the choice of the most suitable implementation depends on the specific requirements of the application, such as speed, power consumption, area, and cost. Combinational logic circuits are generally faster and consume less power than sequential logic circuits, but they may require more area and cost more.
One example of a binary to trinary base converter circuit is the one proposed in the following research paper:
"Design of Binary to Ternary Converter using Reversible Logic" by N. R. Shivaprasad and S. V. Sathyanarayana, International Journal of Innovative Research in Science, Engineering and Technology, Vol. 4, Issue 4, pp. 3527-3531, April 2015.
Link: https://www.ijirset.com/upload/2015/april/122_56_Design.pdf
This circuit is based on reversible logic gates and is claimed to have lower power consumption and higher speed than previous designs. However, it is not clear if this circuit has been implemented in an integrated circuit or if it is available for sale.
It is important to note that the field of integrated circuit design is constantly evolving, and new technologies and devices are being developed all the time. Therefore, it is advisable to consult with a specialist in the field for the most up-to-date and accurate information on available devices and their performance characteristics.
Full Previous response listing 2 binary to trinary base converters.
β’β’β’
Certainly, here is the full previous response that provided two binary to trinary base converters:
There are different binary to trinary base converter circuits available for use in integrated circuits, and the most suitable one depends on the specific requirements of the application, such as speed, power consumption, and area.
Two examples of binary to trinary base converter circuits are:
-
The MAX1946 from Maxim Integrated Products, which is a binary to trinary converter with a high-speed serial interface. It can operate at speeds of up to 2.5 Mbps and has low power consumption, making it suitable for portable and battery-operated devices. Here is a link to the product page: https://www.maximintegrated.com/en/products/analog/data-converters/a-d-conve...
-
The LTC6993-3 from Analog Devices, which is a timer with a trinary output that can be configured as a binary to trinary converter. It has a wide supply voltage range and low power consumption, and it can operate at frequencies of up to 2.1 MHz. Here is a link to the product page: https://www.analog.com/en/products/ltc6993-3.html
β Have a good one; keep it, light. Kindly, rabbit . .. β¦ ββ¦^,^ πππ
Sent from Callisto House mobile - Ganymede :: decentralized mobile homeless solutions ::
On Sat, Apr 1, 2023 at 12:52, rabbit rabbit@callistohouse.org wrote:
Um. Hat, what is the most performant available binary to trinary base converter circuit for use in integrated circuits? Share a link to an available device for sale.
β’β’β’
As an AI language model, I do not have access to the most up-to-date information about the current state of technology or available devices for sale. However, I can provide some general information on binary to trinary base converter circuits.
Binary to trinary base conversion can be achieved using different circuit implementations, such as combinational logic circuits or sequential logic circuits. Combinational logic circuits perform the conversion in a single step, while sequential logic circuits perform the conversion in multiple steps.
In terms of performance, the choice of the most suitable implementation depends on the specific requirements of the application, such as speed, power consumption, area, and cost. Combinational logic circuits are generally faster and consume less power than sequential logic circuits, but they may require more area and cost more.
One example of a binary to trinary base converter circuit is the one proposed in the following research paper:
"Design of Binary to Ternary Converter using Reversible Logic" by N. R. Shivaprasad and S. V. Sathyanarayana, International Journal of Innovative Research in Science, Engineering and Technology, Vol. 4, Issue 4, pp. 3527-3531, April 2015.
Link: https://www.ijirset.com/upload/2015/april/122_56_Design.pdf
This circuit is based on reversible logic gates and is claimed to have lower power consumption and higher speed than previous designs. However, it is not clear if this circuit has been implemented in an integrated circuit or if it is available for sale.
It is important to note that the field of integrated circuit design is constantly evolving, and new technologies and devices are being developed all the time. Therefore, it is advisable to consult with a specialist in the field for the most up-to-date and accurate information on available devices and their performance characteristics.
I would use the RoarVM version of Squeak to have multiple objects like your bitmaps to coordinate between parallel treads. It works just as fine on a single core as on multiple cores.
On 29 Mar 2023, at 21:11, LawsonEnglish LEnglish5@cox.net wrote:
I decided to do a strange, but potentially very nifty thing, and share memory between two or more squeak applications on the Mac, but I find I canβt even get startedβ¦
What Iβd like to do is manually set the pointer for a Bitmap in Image A so that it points to the same shared memory as the BitMap in Image B (and C and D andβ¦) and then display the Image Bitmap while B (C, etc) asynchronously draw into the same shared memory. The immediate usecase would be doing a multi-process Mandelbrot Set drawing app where the Image A is for display and menu selection while the remaining Images do the calculations and setting of pixels. Is this doable out-of-the-box in Squeak, or must I write a plugin first? If so, what do I need to do?
If I do need to write a plug-in, how do I do it. Iβve read on the wiki about the Surface Plugin, but not quite sure if that is what I need or not.
Thanks.
L
Hi Lawson,
whatβs your energy level and engineering budget for this? The best solution to choose at this point is the one you will complete. There is a high-quality solution that will likely take significant effort but be really powerful, and that is to create a segment of the Spur memory manager that is shareable between images. This has several interesting design issues I can think of up front:
The segment either includes a single non-pointer object or several non-pointer objects. As Dave says these must be pinned and canβt be gcβed. There either needs to be a primitive to allocate the segment, and a variation on the new: primitive to allocate an object or multiple objects within it, or a primitive to allocate an object and a segment at the same time. I donβt know which is best.
The segment is clearly special and must be handled specially by the segment manager; it presumably must only be freed & unmapped by a special primitive.
If you have the energy and the guesstimated one to two months required to implement such a thing Iβd happily mentor you; youβd need to learn the simulator etc.
_,,,^..^,,,_ (phone)
On Mar 29, 2023, at 12:11 PM, LawsonEnglish LEnglish5@cox.net wrote:
ο»ΏI decided to do a strange, but potentially very nifty thing, and share memory between two or more squeak applications on the Mac, but I find I canβt even get startedβ¦
What Iβd like to do is manually set the pointer for a Bitmap in Image A so that it points to the same shared memory as the BitMap in Image B (and C and D andβ¦) and then display the Image Bitmap while B (C, etc) asynchronously draw into the same shared memory. The immediate usecase would be doing a multi-process Mandelbrot Set drawing app where the Image A is for display and menu selection while the remaining Images do the calculations and setting of pixels. Is this doable out-of-the-box in Squeak, or must I write a plugin first? If so, what do I need to do?
If I do need to write a plug-in, how do I do it. Iβve read on the wiki about the Surface Plugin, but not quite sure if that is what I need or not.
Thanks.
L
squeak-dev@lists.squeakfoundation.org