Friday, March 4, 2016

Digest for comp.programming.threads@googlegroups.com - 6 updates in 4 topics

Ramine <ramine@1.1>: Mar 03 06:42PM -0800

Hello.....
 
 
Parallel implementation of Conjugate Gradient Sparse Linear System
Solver library was updated to version 1.32
 
https://sites.google.com/site/aminer68/parallel-implementation-of-conjugate-gradient-sparse-linear-system-solver
 
Read here:
 
https://en.wikipedia.org/wiki/Sparse_matrix
 
As you have noticed it says:
 
"When storing and manipulating sparse matrices on a computer, it is
beneficial and often necessary to use specialized algorithms and data
structures that take advantage of the sparse structure of the matrix.
Operations using standard dense-matrix structures and algorithms are
slow and inefficient when applied to large sparse matrices as processing
and memory are wasted on the zeroes. Sparse data is by nature more
easily compressed and thus require significantly less storage. Some very
large sparse matrices are infeasible to manipulate using standard
dense-matrix algorithms."
 
I have taken care of that on my new algorithm, i have used
my ParallelIntHashList datastructure to store the sparse matrices
of the linear systems so that it become very fast and so that it
doesn't waste on the zeros, in fact my new algorithm doesn't store the
zeros of the sparse matrix of the linear system.
 
I have also implemented another scalable parallel algorithm that is
cache-aware an NUMA-aware and that is scalable on NUMA architecture, and
that is designed for dense matrices that you find on Linear Equations
arising from Integral Equation Formulations, this one stores the zeros
of the sparse matrix of the linear system , here it is:
 
Scalable Parallel implementation of Conjugate Gradient Linear System
solver library that is NUMA-aware and cache-aware was updated to version
1.23
 
https://sites.google.com/site/aminer68/scalable-parallel-implementation-of-conjugate-gradient-linear-system-solver-library-that-is-numa-aware-and-cache-aware
 
 
 
Thank you,
Amine Moulay Ramdane.
bleachbot <bleachbot@httrack.com>: Mar 03 10:36PM +0100

bleachbot <bleachbot@httrack.com>: Mar 03 11:43PM +0100

bleachbot <bleachbot@httrack.com>: Mar 04 12:35AM +0100

Ramine <ramine@1.1>: Mar 03 05:46PM -0800

Hello,
 
Dijkstra's algorithm for Delphi and FreePascal. Computes the shortest
path tree. Assumes all weights are nonnegative.
 
Version: 1.0
 
Authors: Robert Sedgewick, Kevin Wayne
and enhanced by Amine Moulay Ramdane
 
Email: aminer at videotron dot ca
 
Description:
 
This project consist of this optimal implementation that uses Dijkstra's
algorithm with a binary heap that takes a time complexity of E*log(V), V
is the number of vertices and E is the number of edges. This library can
be used in parallel clusters manner by dividing your graph in many parts
to speed much your parallel algorithm, also i have added an option to
the algorithm that permit you to pass the edges of the graph that you
can substract from your graph to be able to give you algorithm more
control if you want for example to ignore congestions in some roads...
 
You have to have a 32 bit or 64 bit java compiler and you have to
compile first the java library by running the compile.bat batch file,
after that if you have compiled it with a 32 bit java compiler just
compile after that jtest.dpr with a 32 bit delphi or freepacal compiler,
but if you have compiled it with a 64 bit java compiler just compile
after that jtest.dpr with a 64 bit delphi or freepacal compiler.
 
Please take a look at the jtest.dpr example, you will notice that
you have to call the java SP() method by passing it the name of the file
that contains the graph and by passing it a second parameter that is the
source from were you want to start searching and the third parameter is
an array that contains the edges that you want to substract: i have
enhanced the algorithm with a new option, you can pass the edges that
you want to substract by passing the edges in an array, the edges must
be arranged two by two in the array, the first and the second element of
the array is the first edge that you want to substract etc. after that
you have to call the java SP1() method by passing it the destination
that you want to search, and the java SP1()method will return the
shortest path to the destination and will return also the number of
vertices. Please read carefully jtest.dpr to learn more, that's all.
You can download it from:
 
https://sites.google.com/site/aminer68/dijkstra-s-algorithm-for-delphi-and-freepascal
 
Language: FPC Pascal v2.2.0+ / Delphi 7+: http://www.freepascal.org/
 
Operating Systems: Windows, Mac OSX , Linux...
 
Required FPC switches: -O3 -Sd -dFPC -dFreePascal
 
-Sd for delphi mode....
 
Required Delphi switches: -$H+ -DDelphi
 
For Delphi XE-XE7 use the -DXE switch
 
 
Thank you,
Amine Moulay Ramdane.
Ramine <ramine@1.1>: Mar 03 04:38PM -0800

Hello....
 
 
I have updated JNI Wrapper to version 2.85, i have
just corrected a bug in the jint datatype, before
jint datatype was of a 64 bit length when compiled with a
64 bit java compiler, now i have corrected it because it
must be 32 bit in both 64 bit java compiler and 32 bit java compiler,
and you can be confident now because i think JNI Wrapper
for Delphi and FreePascal version 2.85 is a stable version.
 
You can download JNI Wrapper for Delphi and FreePascal version 2.85
from:
 
https://sites.google.com/site/aminer68/jni-wrapper-for-delphi-and-freepascal
 
JNI Wrapper for Delphi and FreePascal version 2.85
 
Authors: Jonathan Revusky, Amine Moulay Ramdane and Salvatore Meschini.
 
Email: aminer@videotron.ca
 
Description:
 
This JNI Wrapper for Delphi and FreePascal provides a powerful and
simplified object-oriented API for doing mixed language programming in
Java and Delphi (Object Pascal language) or FreePascal. This may provide
an easier and more productive way of getting Win32 and Win64 features in
Java projects and integrating legacy code (at least for the Delphi or
FreePascal community). Please read the readme file inside the zip file
to learn more.
 
I have noticed that JNIWapper for Delphi and FreePascal was not
supporting returning of String and Arrays types from Java, so i have
implemented that and i have now enhanced JNI Wrapper to be very powerful
, so it's now supporting all the necessary functions and methods and and
much more... hope you will happy with it cause i have worked hard to
bring this new 2.84 to you, it is really now a professional software of
a good quality.
 
Also i have enhanced more JNI Wrapper and ported it to 64 bit and to
both FreePascal and the Delphi XE versions, here is the functions that i
have implemented and added:
 
function JstringArrayToDTStrings(jarr : JArray) : TStrings;
function JdoubleArrayToDdoubleArray(jarr : JdoubleArray) : TDdoubleArray;
function JfloatArrayToDsingleArray(jarr : JFloatArray) : TDsingleArray;
function JcharArrayToDwordArray(jarr : JCharArray) : TDwordArray;
function JbyteArrayToDshortintArray(jarr : JByteArray) : TDshortintArray;
function JshortArrayToDsmallintArray(jarr : JShortArray) : TDsmallintArray;
function JbooleanArrayToDbooleanArray(jarr : JBooleanArray) :
TDbooleanArray;
 
And don't forget to call TJavaVM.freeRef() method from Delphi or
FreePascal when you need to garbage collect and free the memory that was
allocated.
 
Language: FPC Pascal v2.2.0+ / Delphi XE+: http://www.freepascal.org/
 
Operating Systems: Windows.
 
 
Thank you,
Amine Moulay Ramdane.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.programming.threads+unsubscribe@googlegroups.com.

No comments: