views:

69

answers:

3

I am interested in learning about topics like

  • AI,
  • machine learning,
  • computer vision,
  • computational geometry, etc.

I'm not sure which field I'd like to focus more on yet, but these are topics that are of general interest to me.

My school is offering a course tagged as a "parallel and multicore computing" course, and I spoke to the professor who said that the course covers the following topics:

  • Clusters,
  • MPI,
  • Multicore,
  • Cilk,
  • GPUs,
  • CUDA.

How useful are these topics? In particuliar to the fields I've mentioned above and in general? Thanks!

+3  A: 

You bet!

I once took an AI class on neural networks. One of the neat things about neural networks is that they naturally give themselves up for parallel processing.

I took another AI class on Genetic Algorithms, which again is a class of algorithms naturally suited to parallel processing.

I recommend giving it a go.

kbrimington
Very cool! I've also had a course on genetic algorithms (well, evolutionary computing, but genetic algorithms was one topic) and I can definitely see the benefit! I'm simply unfamiliar with a lot of the terms listed (CUDA, Cilk, etc) and don't know how widespread they are, and if there are any other things I should know about
questionable
@questionable: I think a lot of school is about understanding principles and experiencing different technologies. Some of the most rewarding things I did at the University have not yet applied to my career. Good luck in your decision-making.
kbrimington
@questionable: "I'm simply unfamiliar with a lot of the terms listed (CUDA" Just google all unfamiliar terms. CUDA is GPU/parallel computing architecture/API developed by nvidia.
SigTerm
+1  A: 

How's the prof? You'll learn a lot from a good professor, regardless of the course. A good prof will make you see things in a different way. A bad prof can make a good course nearly worthless.

Also note that if you want to throw more horsepower at a problem the free lunch of increasing core speeds it over; you'll need to make your computations parallelizable if you want to take advantage of modern processors.

Paul Rubel
+2  A: 

I'll agree with paulrubel, but his answer was a little more general than the question you asked.

The areas that you mentioned often deal with enormous data sets, and parallelizing your computations to run on these huge data sets is one way to make the speed of your algorithms tolerable. So yes, these could be very beneficial.

Chris