Advertisement
Tvor0zhok

ПарПрог C# 1

Nov 8th, 2023 (edited)
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. using System;
  2. using System.Dynamic;
  3. using System.Threading;
  4. using System.Threading.Tasks;
  5.  
  6. namespace ConsoleApp1
  7. {
  8. class Program
  9. {
  10. static double fun(double x)
  11. {
  12. double ans = 0;
  13.  
  14. for (int k = 1; k <= Math.Max(20, (int)20 * Math.Abs(x)); ++k)
  15. for (int j = 1; j <= Math.Max(20, (int)20 * Math.Abs(x)); ++j)
  16. {
  17. double x_2 = x * x;
  18.  
  19. ans += x_2 * (k + j) / (x_2 + k * k * k + j * j * j) * Math.Cos(k * x) * Math.Sin(j * x);
  20. }
  21.  
  22. return ans;
  23. }
  24.  
  25. static void Main()
  26. {
  27. const int N = 200;
  28.  
  29. double[] X = new double[N + 1];
  30.  
  31. for (int k = 0; k <= N; k++) {
  32. X[k] = 100 * Math.Cos(1.0 * k);
  33. }
  34.  
  35. double[] y1 = new double[N + 1];
  36. double[] y2 = new double[N + 1];
  37.  
  38. double S = 0;
  39.  
  40. Int64 Tms = (DateTime.Now).Ticks;
  41.  
  42. for (int i = 0; i <= N; ++i)
  43. {
  44. double val = fun(X[i]);
  45.  
  46. S += val;
  47. y1[i] = val;
  48. }
  49.  
  50. Tms = (DateTime.Now).Ticks - Tms;
  51. TimeSpan Tmss1 = new TimeSpan(Tms);
  52.  
  53. Console.WriteLine("S=" + S.ToString());
  54. Console.WriteLine("Время выполнения последовательной операции for "+(Tmss1.TotalSeconds).ToString()+" c");
  55.  
  56. Object obj = new Object();
  57.  
  58. S = 0;
  59. Tms = (DateTime.Now).Ticks;
  60.  
  61. Parallel.For(0, N + 1, k => { double val = fun(X[k]); S += val; y2[k] = val; });
  62.  
  63. Tms = (DateTime.Now).Ticks - Tms;
  64. TimeSpan Tmss2 = new TimeSpan(Tms);
  65.  
  66. Console.WriteLine("S=" + S.ToString());
  67. Console.WriteLine("Время выполнения параллельного метода For " + (Tmss2.TotalSeconds).ToString() + " c");
  68.  
  69. double a = Tmss1 / Tmss2;
  70.  
  71. Console.WriteLine("Ускорение: " + a);
  72. }
  73. };
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement