Category Archives: Announcements

ConcX version 2.3 Is Released

I am happy to announce that ConcX version 2.3 is available for download now. This latest release includes a bunch of reliability, maintainability, and usability improvements. It is now easier to move around on the main screen; the tab now advances to the more important fields so its easier to set up new birds. The orphan bird tab on screen when a flock is loaded has now been eliminated too.

This latest release also includes a new scenario, the Barbershop, where customers come in and wait for a haircut and one or more barbers call the customer waiting the longest and give them a haircut. And the shop manager makes sure that customers pay and keep track of everything else.

Once again, just download the ConcX zipfile and copy it into any directory that appeals to you. Unzip/gunzip it in that directory and then move into the ConcX subdirectory and then run it. That’s right. No need to go hunting for the appropriate jar files and moving them into a lib folder – that’s all handled when you unzip the file. And when it starts, it automatically makes a config file based on where you install it. So it all should just start working. In Windows, you can just double-click on the jar file and it all should start running. Unfortunately, Ubuntu Linux won’t let you do this because of its protection scheme.

However, open a terminal window (Linux) or a cmd window (Windows) in the folder that you unzipped ConcX into and issue this command:

java -jar concx.jar

and it all should just start running. True confession: I like running ConcX best from the terminal window of Ubuntu because of its snappy performance. Loading flocks from a file seem almost instantaneous. It’s easily 10 times faster than loading the same flocks in Windows.

 

The Javadocs have all been updated and are available for download.

The Getting Started with Avian Computing guide has also been updated and is also available for download.

There are lots more little improvements in ConcX v2.3 that make life better in the parallel world. Go ahead and download this latest version and give it a try.

 

ConcX 2.2 Released

I am pleased to announce version 2.2 of ConcX has been released today, 2/2. I like that: V2.2 released on 2/2. And it’s Groundhogs Day – even better. Anyway, it has many usability improvements, with the net result being that ConcX is much easier to setup and run from either Linux or Window.

The big news is that now you can download the ConcX zipfile and copy it into any directory that appeals to you. Unzip it in that directory and then move into the ConcX subdirectory and then run it. That’s right. No need to go hunting for the appropriate jar files and moving them into a lib folder – that’s all handled when you unzip the file. And when it starts, it automatically makes a config file based on where you install it. So it all should just start working. In Windows, you can just double-click on the jar file and it all should start running. Unfortunately, Ubuntu Linux won’t let you do this because of its protection scheme.

However, open a terminal window (Linux) or a cmd window (Windows) in the folder that you unzipped ConcX into and issue this command:

java -jar concx.jar

and it all should just start running. True confession: I like running ConcX best from the terminal window of Ubuntu because of it’s snappy performance. Loading flocks from a file seem almost instantaneous. It’s easily 10 or 20 times faster than loading the same flocks in Windows.

Version 2.2 has many other improvements. The main display window of ConcX has been resized so it will all display on a laptop with a 1366 x 768 maximum resolution. It was frustrating to see the bulk of the screen but not be able to access the Start All button at the bottom of the screen.

The Bird Type field and all of the Food Pod fields have been changed to search for any birds or foods that start with the text you entered. If it finds more than one match, a dialog box is popped up and all matching names are listed. For example, if you enter “add” and then tab out of the Bird Type field, the dialog that pops up will list Add1Bird, Add2Bird, Add3Bird, Add4Bird, and Add5Bird for you to select. This validation method works the same in either Jar mode or IDE mode.

The button to the right of the Bird Type and Food Pod Type fields is no longer used to select the Bird or Food. Instead it gives users access to Birds and Food Pods outside of the jar file. Because the jar file is generated from source code, if a user didn’t download the source code, there was no way to increase the number of Birds or Foods – they were stuck with whatever choices were included at compile time. The buttons give users access to Birds or Foods that are compiled outside the jar file, allowing (for example) a developer to generate the Bird.class files or Food.class files and let multiple jar users to access these new files.

The Javadocs have all been updated and are available for download.

The Getting Started with Avian Computing guide is being updated and should be ready in a few days. It will be posted on this web site as soon as it is ready.

There are lots more little improvements in ConcX v2.2 that make life better in the parallel world. Go ahead and download this latest version and give it a try.

 

First KiloCore Chip Announced

Congratulations to the researchers at the University of California – Davis for their development of the world’s first chip with 1,000 independently programmed processing cores. The research team was lead by Bevan Baas, professor of electrical and computer engineering and included  Aaron Stillmaker, Jon Pimentel, Timothy Andreas, Bin Liu, Anh Tran and Emmanuel Adeagbo, all graduate students at UC Davis. More information about their impressive achievement is available here. For you spec junkies, be sure to read their detailed paper here.

Dubbed the KiloCore chip, it boasts a number of impressive capabilities beyond just the number of cores:

  • It is implemented in 32nm CMOS technology
  • It operates at 1.78 GHz max at 1.1 V
  • It dissipates only 0.7 mW @ 0.56V @ 115 MHz per processor for a total of 1.3 W
  • At 0.84 V, the 1000 cores execute 1 trillion instructions per second while dissipating just 13.1 Watt
  • Each processor contains 575,000 transistors
  • The complete chip contains a total of 621 million transistor (less that half the 1.4 billion transistors in an Intel i7 quad core CPU)
  • Each processor is independently clocked
  • Each processor can shut itself down to save energy when not needed
  • Each processor can run its own small program instead of SIMD

As impressive as its specs are, what impresses me the most is how soon it arrived. I expected that various groups developing multi-core units would sneak up on the 1,000 core mark more slowly, edging each other on a few tens of cores or maybe one hundred cores at a time. Instead the UC Davis team leapfrogged the other teams and included 3 to 4 times more cores than the few other chips with more than 100 cores. Of the 60-plus multi-core chips listed in their research, most have fewer than 60 cores and only 3 or 4 have more than 100 cores.

Color me impressed. And when can I get one.

And Another Dream Dies (or at least goes to sleep)

Well, I had great dreams for expanding Avian Computing into using Nvidia CUDA to put all those lovely GPU’s to work in parallel but that just isn’t going to work. Or, more accurately, it’s going to take a lot more work than I can afford to devote to the project at this time.

See, there is a Java product called JCUDA that provides Java functionality to CUDA-enabled Nvidia cards. Unfortunately, what that means is that the Java performs JNI calls to the c/c++ libraries that are a thin layer over the built-in GPU math functions. So if I want to do shader functions or polygon transforms or FFT operations, that’s easy. However, if you want to do Java, just a plain old “hello world” program, that’s another story. At least I think it is.

And there’s the rub. Or a couple of them. There’s an Eclipse IDE version designed for CUDA/JCUDA but that version runs on Linux. And the “simplified” install notes run a number of pages and it took until page 3 of cryptic instructions just to run a test that your Linux system is correctly configured. I mean, I do Linux haltingly and hesitantly, so that would be a long road to probable failure.

Or there’s a Windows version but that’s configured to run in Visual Studio. Which means downloading, installing, and learning Visual Studio and then installing CUDA and getting it configured. Again, another long road to probable failure.

Oh, and then there’s learning CUDA itself. Learning all the directives, all the hints to insert into the c code to suggest to the compiler where to insert parallelism, bla-bla-bla.

At the rate that I can find free time, I suspect that it would take about a year to dedicate enough time to become sufficiently capable with CUDA/JCUDA to know if I can apply it to Avian Computing.And unfortunately, there are way too many other promising fields to investigate to be able to make that kind of commitment.

Hear that sad whistling sound? That’s the sound of the wind going out of that particular sail. But better I figure it out now than 6 months from now.

ConcX v2.1 Now Available for Download

I am pleased to announce that the Concurrency Explorer (ConcX) version 2.1 source code is now available for free download. The source code is written in Java 8 and expects to be run from NetBeans IDE, both of which are also available for free download from Oracle. It should be cross-platform compatible for Windows, Linux (lightly tested) and Mac (not yet tested). See the Sidebar for the download link.

Also available is the new “Getting Started with Avian Computing” guide which describes the basics of Avian Computing and introduces ConcX, how to install it and run it from NetBeans, and the controls and indicators used in ConcX. The Getting Started guide also includes about a dozen examples of parallel scenarios that can be loaded and run and (even better) experimented with, adjusting the configurations of the birds in each scenario to see if it affects how the program runs. See the Sidebar for the download link.