| 40 | results_subset[:,i] = x |
| 41 | return results_subset |
| 42 | def submit_solve_jobs(client, KCMb, P, Hertz, keep_dof, n_jobs): |
| 43 | K, C, M, b = KCMb |
| 44 | results = [] |
| 45 | n_keep = len(keep_dof) |
| 46 | n_freq = len(Hertz) |
| 47 | x = np.zeros( (n_keep, n_freq), dtype=np.complex128) |
| 48 | results = [] |
| 49 | for i in range(n_jobs): |
| 50 | Hertz_subset = Hertz[i::n_jobs] |
| 51 | P_subset = P[i::n_jobs] |
| 52 | job = client.submit(solve_subset, |
| 53 | K,C,M,b, P_subset, Hertz_subset, keep_dof) |
| 54 | results.append( job ) |
| 55 | for i,x_subset in enumerate(client.gather(results)): |
| 56 | x[:,i::n_jobs] = x_subset |
| 57 | return x |
| 58 | def remote_solve(solve_with, n_jobs, K, C, M, b, P, Hertz, keep_dof): |
| 59 | if solve_with == 'localhost': |
| 60 | cluster = LocalCluster('127.0.0.1:8786') |