Summaries of Two Talks
To quote from his talk “OpenCL is a collection of libraries that enable low-level programming of a heterogeneous collection of devices. The primary role of OpenCL is to enable software portability across disparate hardware devices and operating systems. We recognize that new devices will be created, and programming models will change. Therefore, OpenCL cannot provide a single unified interface that will stand the test of time. Instead, OpenCL is a federation of technologies that are made accessible to developers through a common and minimal API.”
The presentation was given by Adrien Guillon, a graduate from University of Toronto, who is a computer scientist and a computer engineer, and has a great deal of experience in C++. He has co-founded 2 companies and is planning to move to New Zealand and starting a third company which produces HPC software. HPC is High Performance Computation, which an example he gave of simulating a car, weather, or any other program that uses large amounts of data to compute something. In his talk, he mentioned that there are no software patents in New Zealand, unlike how Microsoft has patented graphics computation a few months back. Which make New Zealand a very great place for creating open source software and not having to worry too much about licensing issues.
In the beginning of his talk, he gave a brief explanation of a computer model, assuming some people in the room were not familiar with it. (CPU-Disk-MainMemory-GPU). He then moved on to a more complicated model that contained more components like multiple cores, network cards, and raid controllers. He mentioned that all of these components have their own type of language, that they can be programmed to do different things. His highlight on this was that the reason this is done, is because of the trend of alleviating pressure of the CPU, giving less processing load on the CPU and spreading it across other components of the computer. He then mentioned that the goal of OpenCL is to provide a model that allows us to work in the world where the different components of a computer are responsible for different code sections of the program.
He mentioned that OpenCL allows you to distribute instructions without source, meaning you don’t have to share the C code. It also allows you to write your own compiler, like for foreign languages.
Speaker's Main Point
The speaker’s main point revolved around the fact that the computational model has changed, and that OpenCL is good for writing programs for those devices that use those models. He mentioned that OpenCL is good for distributed systems, where it could be applied to real-life software, rather than just research programs.
Speaker's Background and point of view
Adrien Guillon is a parallel programming “guru”, who is an expert in C++, OpenCL, and Linux. He is a middleware developer who is concerned with real-life software. He wishes his work on OpenCL will eventually let people easily work with it. He has been working on HPC for a very long time.
He said that OpenCL is currently built for only specific things right now, such as general purpose computation. He believes that OpenCL can be a used for lot more than that.
Open Source Computer Graphics Software
This talk was given by Greg Blair, an expert in the heterogeneous GPU field. His presentation started out really quick, and he jump into the topic of graphics really quickly. He started out by briefly going over the history of graphics in computers. He explained how computer graphics were used and which methods were available. For example, he explained Polygon Scan line Rendering, Ray Tracing, Radiosity, and Use Case (special effects for movies, Star Wars, etc. He overviewed graphics from the 70s all the way to today. During that time, he explained different libraries like PHIGS, GL + OpenGL. He ended his history overview by mentioning, CUDA, OpenGL 2.0, OpenCL, Computer Vision (license plate recognition, face recognition, tracking, augmented reality.) An interesting thing that he mentioned is that if you go with the open source community, you are not locked in a specific vendor, if someone else comes out with a newer release, you don’t need to upgrade your hardware, most of the time. You have free libraries. No bloat ware with open source. You use only things that you need when you compile code.
He talked about how open source compilers are really “Hot”, having one of the best optimizing code and their up on the latest standards. For example, he mentioned how “hackers” updated their compilers whenever new versions of C++ came out.Greg then changed the subject to different open source software used in computer graphics development, such as Gimp, and Blender. There was a brief conversation about why you would use the open source software over the other, such as Gimp over Photoshop. He mentioned that you can practically do the same thing in Gimp as in Photoshop and that you could also code your own plugins for Gimp, which I thought was really cool.
Moving on, Greg then talked about Physics in computer graphics. For example, cloth, rigid body dynamics, and soft body dynamics. He didn’t spend too much time on it and quickly moved onto OpenCV. He explained that OpenCV is a state-of-the-art computer vision which is maintained by Intel. It contains most of the best algorithms for computer vision that are currently out there, and they are fully open source. An interesting thing he mentioned was that OpenCV uses OpenCL/CUDA for GPU acceleration, but mostly OpenCL. The best part about OpenCV was that it runs on android, Linux, iOS, Windows, and other platforms such as raspberry pie.
Greg then got explained what steps you need to do if you decide to use open source graphics. Step one: Figure out what you need. Step two: Research it. Step three: Start making it! He then gave recommendations to the current “hot” open source graphics software. WebGL, OpenCL + WebCL computing on GPU. In the last part of the presentation, Greg gave some examples of the things he talked about during his PowerPoint presentation, like the rigid body dynamics and gave lots of cool demonstrations of the things that are possible.
Speaker's Main Point
I think the main point of the speaker was that he was emphasizing that the open source graphics processing has grown tremendously over the last few years, and there is big shift towards mobile development. He mentioned that the open source community for graphics computation is very large, including Intel which is working on OpenCV, a huge company who is responsible for their famous processors. I also his point on the fact that there are a lot of tools in the open source community for working on computer graphics software, and that its very cheap to get started(mentioning that you can get most of your parts for under $100, like the camera, raspberry pi, etc.)
Both presenters mentioned that with open source, you have an open community where you can search for what you are looking for and that you are not limited by licenses or required to stick one type of operating system. Greg talked about how whatever is in Cuda, is also in OpenCL, except that OpenCL provides more options for programmers. Adrien also mentioned that in his talk, but went into more detail in his talk, providing model graphs and talking about the possible libraries that could be implemented into OpenCL in the future.
Both speakers seem to have similar viewpoints on open source. They both feel like people should get more involved in it and not be afraid to try it out. Greg mentioned that its cheap and easy to get started, and Adrien did not really talk about the cost, but concentrated on explaining to people what OpenCL really is.
My Views and Conclusion
Based on the two presentations that I saw, it seems that open source is an area where you have to take your steps in the direction that you want. There is no absolute path you can take. You are given the tools you need, and you decide how you want to use them. If you want, you can modify them and share them with everyone else. I really liked the Computer Graphics Presentation and the fact that you really don't need that many resources to get started. The code is there for you, you can start working on it really quickly. The OpenCL presentation was not as interesting, but maybe that's because I am more of a visual learner, which was what the computer graphics presentation was more like.
All in all, these presentations showed me that Open Source is a HUGE area. I didn't know that the Open Source community was so big. It could be the fact that its constantly growing, and that big companies like Adobe, and Intel are starting to join in, exposing the Open Source community even more.
Final Thoughts on Open Source
The presentations at FSOSS have changed my view on Open Source. I realized that there are a lot of open source projects that are similar to paid projects, expect that they are free. It was really interesting to find out that big companies like Intel and Adobe are involved in Open Source, and not just Universities and Colleges. Although my view on Open Source has changed, it made me feel even more nervous to get involved, because of all the things that are out there. However, its good to know that there are a lot of options for me to discover in this mysterious world, and that its constantly evolving to become better.