ktakagaki / hayabaya

0 stars 0 forks source link

Major update #9

Closed ghost closed 8 years ago

ghost commented 9 years ago

I have made major changes to the code. I am now using a pre-initialized array as we discussed for the computations, this way for each operation in the loops, a new random number of the correct type is being used. This should make it impossible for the compiler to perform any type of optimization.

The writing of the results to disk, and the Results class has also been changed quite a bit. The new files written to disk are completely different, and much more compliant to the specifications for a fixed with table file format, or csv. The files are also much more human easily readable, and the structure of the data is compliant to Codd's 3rd order normal form as in relational algebra (Codd EF (1990). The Relational Model for Database Management: Version 2. Addison-Wesley Longman Publishing, Boston.)

I have also included an update in the gradle.build script so a haybaya.jar file is not produced. To run it you must provide 3 arguments. 1st argument is a name, preferably the name of the CPU you are running on, 2nd argument is a string small/medium/large indicating the size of the datasets you want to run, and the 3rd argument is the total number of experimental repetitions.

For the data I am analyzing now and have deployed on 3 computers at home, I used the following command $Java -jar Hayabaya.jar Inteli7 medium 4 This outputs a "Inteli7_results" folder in the same folder as the jar file is located in, and in that folder all the results files are written.

And lastly, I have started to use logging, I will be using slf4j together with logback once I have learned this topic properly. Just like Unit Testing, logging is one of those topics where the available documentation is really fucking crappy, it either assumes that you are an experienced programmer who was with them back in 2001 when the first log4j V.1.0 was written, and you read the entire log4j book so you know all about the frameworks structure, implementation, how to configure it with XML files and how to use it in your code. So the available documentation I have been able to find everywhere is nothing more than a couple of lines of code that teaches me NOTHING about how to do logging. So now I am reading the old 128 page log4j book, and then I will dive into details of the logback and slf4j documentation and user manual, and source code so I can learn logging properly.

It is the same shit with Unit Testing, you can't find any decent documentation, except for one book which I have now been forced to use my very last money on buying (Pragmatic Unit Testing in Java 8 with JUnit http://amzn.com/1941222595) This reminds me, for learning Scala there are a number of books I would like you to buy so I can use them for learning Scala. But I will write a mail about that later tonight.

@ktakagaki