[BDCSG2008] Data-Intensive Scalable Computing (Randy Bryant)

Randy opens fire reviewing models of parallelisms and how Google’s Mpa-Reduce model (the core of Yahoo’s Hadoop) is changing the picture. He is emphasizing how data is and integral part of the computational process (which has been greatly unregarded). Map-Reduce model can greatly help because of it fault tolerant capabilities. Now he is reviewing the two traditional parallel programming models (shared model and message-passing model) and how this differ from map-reduce (and how this increases the IO). Initiatives like Hadoop allow to cut-down cost for accessing large scale computing. ...

Mar 26, 2008 · 1 min · 89 words · Xavier Llorà

Big Data Computing Study Group 2008

I am lucky to attend the Big Data Computing Study Group 2008. The line of speaker is impressive. The event is held at Yahoo! Sunnyvale, and Thomas Kwan (UIUC alumni know at Yahoo!) is helping organize it. I will keep blogging about it the rest of the day.

Mar 26, 2008 · 1 min · 48 words · Xavier Llorà

Generic looping in Python

I just posted on my IlliGAL blog how to implement a generic genetic algorithm (GA) main loop squeezing the dynamic behavior of Python. Pretty sleek, if you have tweaked GA main you main find this interesting ;)

Jan 16, 2008 · 1 min · 37 words · Xavier Llorà

A simple and flexible GA loop in Python

Yes, yes, I know, Python. I just have been playing around to see how much you can squeeze out of it and I am very surprise of how elegant it can be. Just and example. I am pretty sure you have written way to many customize GA loops that you need to tweak every now and then, if so take a look at the Python version below. def evolve(self): """Implements a simple evolution loop""" func\_calls = \[\] func\_calls.append(self.evaluate) if ( self.env.selection!=None ) : func\_calls.append(self.selection) if ( self.env.crossover!=None ) : func\_calls.append(self.crossover) if ( self.env.mutation!=None ) : func\_calls.append(self.mutate) if ( self.env.replacement!=None ) : func\_calls.append(self.replace) \[f() for f in func\_calls for i in range(self.env.length/5)\] self.evaluate() return (self.best\_fitness,self.best\_individual) Where the self.env object just contains references to the methods implementing each of the functionalities generically implemented in self.evaluate, etc. Pretty sleek. ...

Jan 16, 2008 · 1 min · 136 words · Xavier Llorà

Profiling Python Code

For the first time in 9 years, this vacation break I have done absolutely nothing. Wow what a coach potato I have become! Well that is not totally true, just for fun I started going over Python and, as usual, for any new language I end writing a simple genetic algorithm. I like the flexibility and compactness of the code (no verbose at all). However when I fire my first run (yes, the good old OneMax problem), I realized that some of my assumptions about coding did not directly transfer. Yes, it was a bit slow. So I started digging for a profiler and, surprise!, it comes with the Python interpreter. Here is an example on how to run the profiling capabilities ...

Jan 10, 2008 · 3 min · 496 words · Xavier Llorà