- Explicit support for validation services.
- Comparison validation.
- A serious benchmark evaluator.
After spending some time playing with Erlang, I decided it was time to test running Smalltalk on multiple cores too.
"Hydra VM is a virtual machine capable of running multiple Croquet images side-by-side, therefore being able to effectively utilize multi-core CPUs."
To test Hydra on Windows, follow these steps:
A workspace explains how to save a headless copy of the current image. After saving it you can start the headless image by evaluating:
HydraVM loadAndRunNewImage: fileNameOfImage.
To evaluate some code (asynchronously) on the started image, evaluate:
HydraVM doIt: 'Transcript show: ''Doit Test''' at: indexOfStartedImage.
I added a load stress class before saving the headless image, started multiple copies of the image, and sent the instruction to start the load test to each image. All worker images ran the stress code in parallel.
Now, this way of using images has a lot of similarities to using processes in Erlang. You fork of another process/image in your code, keep a reference to it and send it asynchronous messages. I can easily see a lot of Erlang’s infrastructure being added at the Smalltalk level, and you have something that works well for a lot of heavy computational problems.
Hydra does however have some aspects which make it far from as good as Erlang’s approach to scaling on multiple cores. When running a large number of Erlang processes, the VM will not create one OS thread per Erlang process. Instead, it will create one OS thread per CPU core, and use its own (green-thread-like) scheduler to run the processes on the (relatively small number of) OS threads. Hydra, on the other hand, will use one (or two -- I am not sure) OS threads per Smalltalk image started. The disadvantage to this method is that operating systems fail to handle a large number of concurrently running OS threads. Erlang programs might start thousands of process, but this is out of question with Hydra’s approach.
Another aspect that prevents starting many images, is the fact that each image will consume a lot of memory. We are talking about several megabytes while an Erlang process uses only a few hundred bytes. I think this might be solvable by letting images share their static parts, but that might take a lot of work at the VM level to support.
I really think the Hydra VM is a great initiative. It shows how Smalltalk can scale on multiple CPU cores, using the only sane method to parallelize a problem (non-shared memory). Even if Hydra has similarities to the Erlang approach, the coding style will be different. While Erlang emphasizes using process as a dynamic part of the program, the Hydra approach will probably be to create a few worker images when your program starts and let the main image send jobs to these images. You do not want to start and stop these images dynamically as your program executes. That will be too expensive.
L’Espace Mendes France (EMF) de Poitiers à publié une vidéo comprenant plusieurs interviews de participants de la conférence C5. On retrouve notamment une intervention de Markus Gaelli qui parle d’Open Croquet, Samir Saidini de Squeak, Wendy Mc Kay sur la conception participative ainsi qu’une présentation de SqueakBot par des animateurs de Planète Sciences. Merci à Patrick Treguer pour la réalisation de ce reportage.
As some of you know, the video camera I brought to StS 2008 broke after day one - fortunately, I received a lot of help from James Savidge and Thierry Thelliez, and we got video shot of the rest of the conference.
However, the higher quality stuff was HD, shot on Thierry's Sony camera. I have conversion software for the files, but the time to convert the files is about 12x the time of footage. Meaning, one hour of content takes 12 hours to convert. Even then, it's not done - that leaves me with a file that's too big to upload, so it will require further down-conversion.
All of which is a roundabout way of saying that it's going to take awhile to get all of this footage posted :)
The slides from Alessandro Warth's keynote at Smalltalk Solutions 2008 are online now - his talk was very well received - the audio and video will follow next week.
Technorati Tags: smalltalk, smalltalk solutions, OMeta
On today's Smalltalk Daily, we look at the BraceConstructor add on. In short, it makes it possible to change this:
Array with: 3+4 with: Date today.
to this:
{3.4. Date today}
Technorati Tags: smalltalk
Según puedo leer en los últimos mails de Squeak-Dev, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en Spoon, para conseguir un entorno totalmente modular.
Spoon, según la definición que dá Craig Latta en su web (ya que no he encontrado nada en el Swiki oficial),
“Spoon, es un sistema de programación mínimo de Objetos, con nuevos enfoques a la organización, colaboración y despliegue”.
Supongo, pues todavía no han dado muchas más noticias, éste sistema, junto a los DeltaStreams, o ChangeSets, o Installer scripts, o/y mezcla de todos y demás parafernalias, nos montaríamos, partiendo de una imágen mínima, nuestro entorno.
A ver que se va cociendo en los próximos días.
More diagrams produced for MirrorImage documentation. These two show the Class/Namespace model in VW. In addition to the PNGs embedded below, you can grab them as PDF. I think that's more immediately useful than SVG, and the OmniGraffle sources aren't relevant.
I've also added a PDF form of the Class - Metaclass diagram.
.
.