Browse Source

LA: managed provider no longer parallelize simple addition loops

pull/555/merge
Christoph Ruegg 9 years ago
parent
commit
1a1a7ff293
  1. 29
      src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs
  2. 29
      src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs
  3. 6
      src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.cs
  4. 6
      src/Numerics/Providers/LinearAlgebra/ManagedReference/ManagedReferenceLinearAlgebraProvider.cs

29
src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Double.cs

@ -3,7 +3,7 @@
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
//
// Copyright (c) 2009-2015 Math.NET
// Copyright (c) 2009-2018 Math.NET
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
@ -71,13 +71,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
}
else if (alpha == 1.0)
{
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = y[i] + x[i];
}
});
result[i] = y[i] + x[i];
}
}
else
{
@ -209,13 +206,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
throw new ArgumentException(Resources.ArgumentVectorsSameLength);
}
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = x[i] + y[i];
}
});
result[i] = x[i] + y[i];
}
}
/// <summary>
@ -250,13 +244,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
throw new ArgumentException(Resources.ArgumentVectorsSameLength);
}
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = x[i] - y[i];
}
});
result[i] = x[i] - y[i];
}
}
/// <summary>

29
src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.Single.cs

@ -3,7 +3,7 @@
// http://numerics.mathdotnet.com
// http://github.com/mathnet/mathnet-numerics
//
// Copyright (c) 2009-2015 Math.NET
// Copyright (c) 2009-2018 Math.NET
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
@ -71,13 +71,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
}
else if (alpha == 1.0)
{
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = y[i] + x[i];
}
});
result[i] = y[i] + x[i];
}
}
else
{
@ -209,13 +206,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
throw new ArgumentException(Resources.ArgumentVectorsSameLength);
}
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = x[i] + y[i];
}
});
result[i] = x[i] + y[i];
}
}
/// <summary>
@ -250,13 +244,10 @@ namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
throw new ArgumentException(Resources.ArgumentVectorsSameLength);
}
CommonParallel.For(0, y.Length, 4096, (a, b) =>
for (int i = 0; i < result.Length; i++)
{
for (int i = a; i < b; i++)
{
result[i] = x[i] - y[i];
}
});
result[i] = x[i] - y[i];
}
}
/// <summary>

6
src/Numerics/Providers/LinearAlgebra/Managed/ManagedLinearAlgebraProvider.cs

@ -31,12 +31,6 @@ using System;
namespace MathNet.Numerics.Providers.LinearAlgebra.Managed
{
internal enum Variation
{
Original,
Experimental
}
/// <summary>
/// The managed linear algebra provider.
/// </summary>

6
src/Numerics/Providers/LinearAlgebra/ManagedReference/ManagedReferenceLinearAlgebraProvider.cs

@ -31,12 +31,6 @@ using System;
namespace MathNet.Numerics.Providers.LinearAlgebra.ManagedReference
{
internal enum Variation
{
Original,
Experimental
}
/// <summary>
/// The managed linear algebra provider.
/// </summary>

Loading…
Cancel
Save