mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
[UPDATE] Starting to add geaxpby test, to reach p-digit accuracy on computations
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Computational Routines Test
|
||||
This is a directory containing all the tests done in order to analyze the correctness of the computational routines present in PSBLAS.
|
||||
|
||||
## Test Environment
|
||||
These tests are developed using a linux environment, in particular Rocky Linux 9.5 (Blue Onyx).
|
||||
|
||||
The compiler used is:
|
||||
- gnu 12.2.1
|
||||
|
||||
The necessary dependnces are:
|
||||
- mpich 4.2.2
|
||||
- psblas 3.9
|
||||
|
||||
In order to have the exact same environment used for testing compile PSBALS library using cuda 12.5.
|
||||
|
||||
|
||||
|
||||
|
||||
## Routines
|
||||
- psb_geaxby
|
||||
- psb_spmm
|
||||
@@ -0,0 +1,41 @@
|
||||
INSTALLDIR=../../..
|
||||
INCDIR=$(INSTALLDIR)/include/
|
||||
MODDIR=$(INSTALLDIR)/modules/
|
||||
include $(INCDIR)/Make.inc.psblas
|
||||
#
|
||||
# Libraries used
|
||||
#
|
||||
LIBDIR = $(INSTALLDIR)/lib/
|
||||
PSBLAS_LIB = -L$(LIBDIR) -lpsb_util -lpsb_base
|
||||
LDLIBS = $(PSBLDLIBS)
|
||||
|
||||
FINCLUDES=$(FMFLAG)$(MODDIR) $(FMFLAG).
|
||||
|
||||
EXEDIR=./runs
|
||||
|
||||
|
||||
GREEN=\033[0;32m
|
||||
RED=\033[0;31m
|
||||
BLUE=\033[0;34m
|
||||
YELLOW=\033[33m
|
||||
END_COLOUR=\033[0m
|
||||
|
||||
|
||||
all: runsd psb_geaxpby_test
|
||||
@printf "$(GREEN)[INFO]\tCompilation success!$(END_COLOUR)\n"
|
||||
|
||||
runsd:
|
||||
@(if test ! -d runs ; then mkdir runs; fi)
|
||||
@printf "$(BLUE)[INFO]\tBuild directory $(EXEDIR) correctly initialized$(END_COLOUR)\n"
|
||||
|
||||
|
||||
psb_geaxpby_test:
|
||||
@$(FLINK) $(LOPT) psb_geaxpby_test.f90 geaxpby.f90 -o psb_geaxpby_test -I$(MODDIR) -I. $(PSBLAS_LIB) $(LDLIBS)
|
||||
@mv psb_geaxpby_test $(EXEDIR)
|
||||
@printf "$(BLUE)[INFO]\tTesting files generated correctly$(END_COLOUR)\n"
|
||||
|
||||
clean:
|
||||
@rm -f $(OBJS)\
|
||||
*$(.mod) $(EXEDIR)/psb_geaxpby_test
|
||||
|
||||
.PHONY: all runsd clean
|
||||
@@ -0,0 +1,2 @@
|
||||
# Introduction
|
||||
This is a directory developed by Luca Pepè Sciarria and Simone Staccone froma Tor Vergata University to start to create some unit tests for PSBLAS 3.9, in particular for ```psb_geaxpby``` routine.
|
||||
@@ -0,0 +1,31 @@
|
||||
program main
|
||||
use psb_geaxpby_test
|
||||
use psb_base_mod
|
||||
|
||||
implicit none
|
||||
|
||||
|
||||
! MPI variables
|
||||
integer(psb_ipk_) :: my_rank, np
|
||||
|
||||
! Communicator variable
|
||||
type(psb_ctxt_type) :: ctxt
|
||||
|
||||
|
||||
call psb_init(ctxt)
|
||||
call psb_info(ctxt,my_rank,np)
|
||||
|
||||
if(my_rank == psb_root_) then
|
||||
write(psb_out_unit,*) 'Welcome to PSBLAS version: ',psb_version_string_
|
||||
write(psb_out_unit,*) 'This is the psb_geaxpby_test sample program'
|
||||
end if
|
||||
|
||||
call psb_barrier(ctxt)
|
||||
|
||||
|
||||
|
||||
|
||||
call psb_exit(ctxt)
|
||||
|
||||
return
|
||||
end program main
|
||||
BIN
Binary file not shown.
@@ -0,0 +1,54 @@
|
||||
!> Test program for y = alpha * x + betha * y psb_geaxbpy routine
|
||||
!! Check the README.md to see all details about the tests.
|
||||
!!
|
||||
!! Authors: Luca Pepé Sciarria, Staccone Simone (Tor Vergata University)
|
||||
!!
|
||||
!! Type: Synchronous.
|
||||
!!
|
||||
!! ROUTINE PARAMETERS
|
||||
!! alpha Description: the scalar α.
|
||||
!! Scope: global
|
||||
!! Type: required
|
||||
!! Intent: in
|
||||
!! Specified as: a number of the data type indicated in Table 1.
|
||||
!!
|
||||
!! x Description: the local portion of global dense matrix x.
|
||||
!! Scope: local
|
||||
!! Type: required
|
||||
!! Intent: in
|
||||
!! Specified as: a rank one or two array or an object of type psb T vect type
|
||||
!! containing numbers of type specified in Table 1. The rank of x must be
|
||||
!! the same of y.
|
||||
!!
|
||||
!! beta Description: the scalar β.
|
||||
!! Scope: global
|
||||
!! Type: required
|
||||
!! Intent: in.
|
||||
!! Specified as: a number of the data type indicated in Table 1.
|
||||
!!
|
||||
!! y Description: the local portion of the global dense matrix y.
|
||||
!! Scope: local
|
||||
!! Type: required
|
||||
!! Intent: inout
|
||||
!! Specified as: a rank one or two array or an object of type psb T vect type
|
||||
!! containing numbers of the type indicated in Table 1. The rank of y must
|
||||
!! be the same of x.
|
||||
!!
|
||||
!! desc_a Description: contains data structures for communications.
|
||||
!! Scope: local
|
||||
!! Type: required
|
||||
!! Intent: in
|
||||
!! Specified as: an object of type psb desc type.
|
||||
!!
|
||||
!! info Description: Error code.
|
||||
!! Scope: local
|
||||
!! Type: required
|
||||
!! Intent: out.
|
||||
!! Specified as: An integer value; 0 means no error has been detected.
|
||||
!!
|
||||
module psb_geaxpby_test
|
||||
contains
|
||||
subroutine psb_spmm_kernel()
|
||||
end subroutine
|
||||
|
||||
end module psb_geaxpby_test
|
||||
@@ -1,4 +1,4 @@
|
||||
INSTALLDIR=../..
|
||||
INSTALLDIR=../../..
|
||||
INCDIR=$(INSTALLDIR)/include/
|
||||
MODDIR=$(INSTALLDIR)/modules/
|
||||
include $(INCDIR)/Make.inc.psblas
|
||||
@@ -30,7 +30,7 @@ runsd:
|
||||
|
||||
|
||||
psb_spmm_test:
|
||||
@$(FLINK) $(LOPT) psb_spmm_test.f90 spmm.f90 -o psb_spmm_test -I../../modules/ -I. $(PSBLAS_LIB) $(LDLIBS)
|
||||
@$(FLINK) $(LOPT) psb_spmm_test.f90 spmm.f90 -o psb_spmm_test -I$(MODDIR) -I. $(PSBLAS_LIB) $(LDLIBS)
|
||||
@mv psb_spmm_test $(EXEDIR)
|
||||
@printf "$(BLUE)[INFO]\tTesting files generated correctly$(END_COLOUR)\n"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
!> Test program for y = AX spsb_pmm routine
|
||||
!> Test program for y = AX psb_spmm routine
|
||||
!! Check the README.md to see all details about the tests.
|
||||
!!
|
||||
!! Author: Luca Pepé Sciarria, Staccone Simone (Tor Vergata University)
|
||||
@@ -137,8 +137,6 @@ module psb_spmm_test
|
||||
output_file_name = output_file_name // "_b3.mtx"
|
||||
end if
|
||||
|
||||
|
||||
|
||||
! Save result to output file
|
||||
call mm_array_write(y,"Result vector",info,filename=output_file_name)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user