User:Acraig1/FSOSS 2013

From CDOT Wiki
Jump to: navigation, search

FSOSS 2013 Report: OpenCL and TBD

Introduction

In my 4 years at Seneca, I had no desire to go to FSOSS. Mainly probably because I had no idea what it was. It wasn't until this assignment came up that I looked into what FSOSS was all about, and what went on during it. It's also a bit strange that a relatively large event that happens at the campus isn't so well advertised. I think last year was the first year that I had actually heard about it, and the previous years I was just never aware that it existed.

The experience I had at FSOSS was questionable at best. I went on Friday and arrived shortly after 1 pm. As being promised a lunch for signing up early, I naturally didn't eat anything. After arriving, I went to the room where the lunch was supposed to be, and of course there was nothing there. It had been completely cannibalized. I figured they would have a hotdog cart or something. Maybe some pizza. But nothing when I got there. I was pretty disappointed in this as there was no indicator that the lunch was at a specific time. Another thing that upset me was the schedule. There was a list of the presentations that were happening on their website, but no timetable. So I figured that arriving in the early afternoon would give us access to a wide array of presentations. I was wrong. Even though there were many presentations, they were being run in parallel, so it ended much earlier than I expected. I later found out that you could find the times of the presentations on their site, but you had to go into each presentation page to see the times. A timetable would be helpful, especially one that's easily accessible (aka on the front page of the site because the whole event is based on these timings). I must say my initial impression of this event was pretty bad.

OpenCl: Software Model and Philosophy

About the Speaker

This presentation was given by Adrien Guillon, a computer scientist and software engineer who received his degree from the University of Toronto. He is an enthusiast in high performance computing, who spends most of his time trying to figure out the bigger issues for high performance computing.

Summary of Talk

This talk was about OpenCL, the parallel programming framework. The talk wasn't about what OpenCL is however, or what it can do, but why we should care about OpenCL as programmers. He talked about how the role of OpenCL is to build high level abstractions that are useful for your purposes. Because of this, we don't know what all of the different kinds of libraries are going to be. So we would want to enable an ecosystem for this sort of stuff. He talks a little bit about how that were are enfettering into an interesting situation when writing programs, where we use many different things made by many different people to achieve whatever are actual program purpose. With OpenCL, it is currently built for a very specific purpose right now, for general purpose computing. But he believes that it can be much more than that.

The current main problem with OpenCL is that it is changing with every release. Because of this, there is currently no stable API for OpenCL. You can't even link a version 1.1 library with a version 1.0 program. He wants to be able to future proof programs, meaning that we don't have to rewrite the same program for each no version release. To achieve this, he wants the software community to be as open as possible, to all work together so we don't have to work as hard individually when someone else makes a new version. This would greatly improve program portability. However, there's no parallel model of computation yet, it is very difficult to find something like a time complexity for parallel algorithms. There is also the notion if parallel algorithms even exist. He closes by saying that OpenCL isn't perfect, but we need to acknowledge that we are at the beginning of parallel programming abstractions, so we need to work together to set a proper foundation for it.

Speakers View on Open Source

Adrien is an advocate for open source software. He is very highly against software patents, and doesn't like the idea that someone can own the concept of something like the for loop. He is planning on moving to New Zealand to start an open source company which develops software for high performance computing. He believes that New Zealand will be the next Silicon Valley, as there are no software patents in New Zealand and thinks that many developers will flood over there. He did kind of jokingly say though that as much as he loves open source, he also loves to eat. He doesn't seem to keen on the kind of cash flow that open source software has been providing for him.

MongoDB

About the Speaker

This presentation was given by Kevin Cearns, an IT consultant from Toronto. Before he was an IT consultant, he was an IT director. He mainly focuses on open source applications and software, mainly on NoSQL databases. He runs an infrastructure company that provides infrastructure and platform services for companies. They provide the operations around it as well. They Recently became a MongoDB partner.

Summary of Talk

This talk was about MongoDB, a NoSQL data store. The way this topic was presented was from a more technical side of things, more about educating us on what this is exactly. He didn't talk much about the philosophy or what MongoDB does for programmers, but what it is and how it functions. He first went into some detail about what NoSQL databases are. And what they essentially are, are database that don't use a structured query language. They also don't require a database structure, or table structures.

He then talked about how MongoDB came to be. It was originally part of a larger initiative, something specifically made for a company. But then the realized that what they had made had serious potential, and more to offer. because of this, they shifted focus to it. It wasn't originally an open source project, but in 2009, version 1.0 was released as open source under the AGPL licence.

He then went into a more technical talk about what MongoDB is, and what it does. Essentially, MongoDB is a high performance document database that uses JSON documents to store things. It is written in C++ and uses memory mapped files to gain speed. The way it stores related data is with other JSON documents and arrays embedded into a JSON document. The MongoDB project is very community open, and anyone is able to submit code revisions. He talks about how the database is extremely reliable, through the use of 2 techniques called sharding and making a replica set. Replica sets are other machines with the database on them, so if your main machine dies, the other one will automatically take its place. Sharding is a way of spreading your data across many different servers. It handles all the distribution and retrieving automatically.

He then does a demo to show the power, flexibility, and easiness of MongoDB. You don't have to do a lot of heavy lifting to create databases, because all you have to do is send data to it, and MongoDB handles all of the creation. It almost eliminates the need for a DB admin that is needed for SQL databases. The mongo shell lets you run JavaScript, and this enables people to pick it up rather quickly because they have already been coding this way. Because of MongoDb, there is now a term called the MEAN stack (a new type of LAMP stack), which is MongoDB, Express, AngularJS, and NodeJS. This allows you to run your application fully in JavaScript from top to bottom.

People have started to pick up MongoDb and use it as their main data store. However, there are some things that MongoDB can't do, such as transactions, for e-commerce things. He never talked about whether this would be possible to do in the future, or if there was any mention of it. He stressed about how reliable MongoDB is. During their first year of business, they had 100% uptime using MongoDB. He believes that it is the future, as it is currently the number 6 type of database being used.

Speakers View on Open Source

The speaker didn't directly say anything about if he liked the open source model, or anything about what he liked most about it, but I was able to piece together what it sounded like he said. He said he runs the MongoDB user group in Toronto, which right now has about 400 members. They have talks and meet-ups, and it sounds like it is quite a nice community. Based on this, it sounds like he really enjoys the community aspect of open source. Throughout the presentation, he kept talking about wonderful things the MongoDB community had to offer. He really wants the community to grow, and to spread the knowledge about MongoDB. However, it didn't sound like he was to enthralled about how the open source community doesn't document things.

Comparison of Speakers Views on Open Source

From what I could tell, Adrien (the OpenCL speaker) is all about open source, and Kevin (the MongoDb speaker) seems to really enjoy the community of open source. Adrien talked a good bit about how software patents are a terrible thing, and that programmers won't go much further if we are always competing against each other. Kevin didn't really go into much detail about open source. From what I could gather, it didn't seem like he was for it or against it.

My views and Conclusions

For me, I wasn't really much interested in open source going into FSOSS, and I still am on the same boat. I don't really have anything against it, I just don't like the way the model works. I believe that to have a high quality product, the best way to ensure that is to control as many of the variables as possible. In open source, while you don't have to accept peoples code revisions, you are relying on random people to fix certain things, and even if it works, the quality may not be up to the level you want. So all in all, I think open source is a fine thing, it's just not for me.