How to make NSolve faster?

Can somebody help me, to make these program faster? u and r are parameters, a,b,c,d,q,w,Ca are variables. I need to numerical solve these system for many values of u and r. And it take 10 seconds for every values of r and u. Can I make it faster?

u = 1.9; j = 1; While[u <= 4, u = u + 0.1; r = 0;  While [r <= 0.1, r = r + 0.001;   s1[[j++]] =     NSolve[{Ca/u^2 +         r (6 a (c^2 - d^2) + 12 b c d +            6 (q^2 + w^2 + a^2 + b^2 + c^2 + d^2) Ca + Ca^3) == 0,      a (1/u^2 - 1) + r (3 a (a^2 + b^2) + 6 a (c^2 + d^2) -            3 w^2 q + q^3 + 6 a (q^2 + w^2) + 3 c^2 Ca - 3 d^2 Ca +            3 a Ca^2) == 0.5,      b (1/u^2 - 1) +         r (3 b (a^2 + b^2) + 6 b (c^2 + d^2) - w^3 + 3 w q^2 +            6 b (q^2 + w^2) + 6 c d Ca + 3 b Ca^2) == 0,      c (1/u^2 - 0.25) +         r (6 (a^2 + b^2) c + 3 c (c^2 + d^2) + 6 c (q^2 + w^2) +            6 (a c + b d) Ca + 3 c Ca^2) == 0,      d (1/u^2 - 0.25) +         r (6 (a^2 + b^2) d + 3 d (c^2 + d^2) + 6 d (q^2 + w^2) +            6 (-a d + b c) Ca + 3 d Ca^2) == 0,      q (1/u^2 - 0.25) +         r (6 (a^2 + b^2) q + 6 (c^2 + d^2) q + 3 q (q^2 + w^2) +            3 (a q^2 - a w^2 + 2 b q w) + 3 q Ca^2) == 0,      w (1/u^2 - 0.25) +         r (6 (a^2 + b^2) w + 6 (c^2 + d^2) w + 3 w (q^2 + w^2) +            3 (-2 a q w + b q^2 - b w^2) + 3 w Ca^2) == 0      }, {a, b, c, d, q, w, Ca}, Reals, VerifySolutions -> False]];]