1
$\begingroup$

I have a speedup function that is a function of two variables: N and P where N is the # of processors and P is the percentage of a computer program that can be parallelized.

The speedup formula looks like this:

$S(N,P)=\frac{1}{(1-P)+\frac{P}{N}+0.5\log_2N}$

How can I enter the above function in WolframAlpha to have it compute a partial derivative for both variables for me?

I need to maximize S(N,P) (i.e. achieve the highest speedup possible given I can change the # of processors (N) and change how much of the computer program is parallelizeable (P) ).

I am almost certain I need to take a derivative here, as it appears like I need to find a maxima, but I'm uncertain how to start.

Just want to clarify, I do not need to actually find the highest speedup, only compute the partial derivative that would aid in the discovery of highest speedup achievable.

Would appreciate all / any advice.

  • 0
    Tha$n$ks Rahul. That was exactly what i needed.2012-10-20

1 Answers 1

1

This is a classical situation in optimization theory. As in the context of functions of 1 variable, you have to go through two steps :

  1. find the "candidates" for the maximum

  2. find out which among the candidates is actually a maximum.

To achieve the first step, you do need to look for a point $(N,P)$ where both partial derivatives are zero (a partial derivative being calculated by fixing the other variable and derivating with respect to the first one).

The second step is trickier. If you know that there is a maximum, then you just have to look at the value of $S$ at the various candidates $(N,P)$. Otherwise, more subtle tools are needed to prove that a point is indeed a maximum (concavity, derivative of higher order, existence of a maximum through a compactness argument...).

I suggest you look at a textbook in optimization theory as this is really a central problematic. Hope that helps.