Internship at Variable Energy Cyclotron Center – A leap into the world of CUDA
About the Author: Adwitiya Das, a student of M.C.K.V. Institute of Engineering, talks about her experience of interning at a government research facility and how the experience proved to be an enriching one.
“Information is not knowledge. The only source of knowledge is experience” – this quote by Albert Einstein has inspired many young minds to explore the unknown and taste the essence of life. Summer of 2017 was one such opportunity for me to experiment and explore a wonderful phase of my life – my internship.
I had teamed up with two of my college friends who wanted to apply for Variable Energy Cyclotron Center (V.E.C.C.), Kolkata, India. It is a premier R&D unit of the Department of Atomic Energy, Government of India, and one of the constituent institutions of Homi Bhabha National Institute. We went to the placement cell of our college to take an N.O.C. Thus, three of us, on a sultry afternoon in May, with our certificates and wishful minds, went to find a summer internship at VECC – to go outside the classroom walls and use the knowledge they had been accumulating for a long time. We waited outside the gates of the place for about an hour, wanting to meet the training coordinator himself, Dr. Nabhiraj P.Y. When he came, we handed over the documents to him. Gentleman as he was, he listened to us patiently. We had also done some work on speech and gesture recognition, which was one of the ongoing projects of theirs, and that gave us an edge. After all, spending all those hours doing research about V.E.C.C. had to pay off. A conversation for about twenty minutes, just outside the gates of V.E.C.C. – that’s the interview we had. He then went inside with the documents. We felt positive about how things went – he seemed content with us, and we weren’t mistaken. About three weeks later, an email came and we were offered an internship at V.E.C.C.
It was a no-stipend internship but it was in a government research facility – the largest cyclotron center in Asia. On the first day of our internship, after a thorough inspection of our belongings and our identities, we were allowed to walk into the facility. We weren’t allowed to take any gadgets at all – no cell phones, pen drives, or even earphones! We were first given entry-passes for a month and then taken for the orientation program, where we were assigned our mentors. I had been assigned to the CS & IT unit under Mr. Surojit Saha, a senior research officer. The department building was easy to find, my mentor was not. I finally found him on the top-most floor of the building. He told me that he had been working with robotics and was under transition to the field of medical image processing – which was supposed to be my work-field as well. For image-processing of any kind, one needs to have command over computer graphics, a subject I barely understood and utterly despised. My job was to lay the ground-work, on which he would start his work. In our first meeting, he started using jargons of image processing – some I knew while others went over my head. Sensing that I was a bit overwhelmed with such big words, he offered me another alternative – website design. It was something that I had done a thousand times and was completely comfortable with; however, I had gone there to learn something new. I knew I had to step out of my comfort zone. I took it as a challenge and opted to work on “CUDA programming and its applications in the field of parallel computing”.
The number of hours I spent on studying the device and what it could do were more than those I had spent for my semester examination. The more I read, the more fascinated I was. Initially, executing the simplest of codes was difficult; however, the more I worked on it, the more it became clear to me and soon I picked up a smooth pace. My mentor sure helped a lot, but I knew I had to pick up the pace if I had to do something meaningful and contribute what I was expected to. I started burning the midnight oil, learning about parallel programming, CUDA, image processing, histograms, and much more. I was dreading at the beginning but all the monsters, which kept me up on the night before my graphics exam, seemed to have disappeared. I started to take a liking to the subject and this helped my work even more. My mentor had divided the entire research project into three modules. I had brain-storming sessions with my mentor and some other interns working on similar projects. We discussed ideas on the module that needed to be explored next.
Every day I came at 9:30 A.M. sharp and had a brief discussion about the work progress and that day’s work with my mentor. Then, I went into a room where I could work alone without any sort of disturbance. I started with basic codes. CUDA is an extension of the very basic C programming language, where one needs to write code for a GPU (Graphics Processing Unit). These are a little different from the codes we are habituated to write for CPU (Central Processing Unit). The GPU that I was working with was one of the best GPUs in the world – NVIDIA Quadro M6000, priced at around 6,00,000 INR. It has 3072 cores, whereas a normal CPU has around 56 cores. I had to analyze and compare the performances of GPU and CPU, not theoretically, but practically! The ultimate objective was to establish the fact that GPUs are faster than CPUs and thus GPUs should be used for processing medical images. I spent my days at V.E.C.C. writing code modules of at least a few hundred lines, in different formats, to have optimal results. There were times when I even skipped lunch as I was really engrossed in the task – only coffee breaks kept me going. It was tiring, but immensely satisfying! I had to do my all my project work at V.E.C.C. as we were not allowed to carry any kind of document back to home. At times I would be stuck in a line of code and since CUDA is pretty new in the scene, not much material is available, on-line or off-line. At such times, my mentor used to come to my rescue. He would go through each and every code, line by line, and help me out – he was strict but passionate and patient too. When days were easy, I would spend time in the cafeteria, conversing with other interns and knowing more about them.
The last day of V.E.C.C. was a very hectic one. I had to finish everything and prepare a gist for my project report. I went up and down the building – in my entire life, I hadn’t ridden the elevator as many times as I did on that day. I was anxious, worked-up, and sad, all at the same time I learned a lot more than technical knowledge. I mastered the art of spending nine hours a day without my cell phone – it not only helped me concentrate more on my work but it also made me realize that the real world – not the virtual one youngsters have built around themselves – is way more fun and interesting. You get real likes and comments for the real jobs you do! The internship also made me realize what I was capable of as I saw myself differently – working under pressure, alone, focused and exuberant. I became more confident and open to challenges. I also understood that outside the comfortable walls of the college, we have to work and manage everything on our own. It is one of the most important lessons I learnt in those 30 days. To conclude, my internship at V.E.C.C. could easily be the best teacher I have ever had!
Are you also intrigued by the vast opportunities that programming offers? Apply to these cool programming internships and start exploring!
Editor’s note – If you also have an interesting story to share, you can now participate in Your Internship Story Contest 2017 and win cash prizes and goodies worth INR 1 Lac!