I know that I did everthing right but I get no speedup, why?

There are several reasons that this may happen: (1) you aren't really running the program in parallel (believe me that this is not that uncommon for a new user! Or sometimes even an experienced user), (2) Polaris did not do a good job of parallelizing your application (this isn't that uncommon either, especially for very large applications) or (3) your system is heavily loaded and using extra processors actually slows the application down. I'll briefly discuss each of these.

1) Your program isn't really running in parallel: see the question "How can I tell if my program is running in parallel?" to check this. If you are new to using polaris or the environment at Purdue, check this first, it may keep you and your application from wasting a lot of time!

2) Polaris did not do a good job of parallelizing your application: Studies have shown that automatic parallelization does well in only about 1 in 2 programs, and these studies were done with benchmark programs, not really big applications. To see if this is the problem, you'll probably need to characterize your application and look into tuning it by hand. You can look at http://min.ecn.purdue.edu/~ipark/UMinor/meth_index.html  for help on this subject.

3) Your system is heavily loaded: Parallel programs use more than 1 processor. If your multiprocessor is heavily loaded then running an application in parallel may only increase memory and bus contention. If you are trying to tune and time a new program, try to do it on a quiet machine or in a single-user environment if possible. Also see "How can I tell if the machine I'm using is heavily loaded?".