1 /*
2 * -- High Performance Computing Linpack Benchmark (HPL)
3 * HPL - 2.3 - December 2, 2018
4 * Antoine P. Petitet
5 * University of Tennessee, Knoxville
6 * Innovative Computing Laboratory
7 * (C) Copyright 2000-2008 All Rights Reserved
8 *
9 * -- Copyright notice and Licensing terms:
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 *
15 * 1. Redistributions of source code must retain the above copyright
16 * notice, this list of conditions and the following disclaimer.
17 *
18 * 2. Redistributions in binary form must reproduce the above copyright
19 * notice, this list of conditions, and the following disclaimer in the
20 * documentation and/or other materials provided with the distribution.
21 *
22 * 3. All advertising materials mentioning features or use of this
23 * software must display the following acknowledgement:
24 * This product includes software developed at the University of
25 * Tennessee, Knoxville, Innovative Computing Laboratory.
26 *
27 * 4. The name of the University, the name of the Laboratory, or the
28 * names of its contributors may not be used to endorse or promote
29 * products derived from this software without specific written
30 * permission.
31 *
32 * -- Disclaimer:
33 *
34 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
36 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
37 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY
38 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
39 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
40 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
41 * DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
42 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
43 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
44 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45 * ---------------------------------------------------------------------
46 */
47 #include "hpl.h"
48
49 #ifdef STDC_HEADERS
50 int HPL_pdpanel_free
51 (
52 HPL_T_panel * PANEL
HPL_reduce(void * BUFFER,const int COUNT,const HPL_T_TYPE DTYPE,const HPL_T_OP OP,const int ROOT,MPI_Comm COMM)53 )
54 #else
55 int HPL_pdpanel_free
56 ( PANEL )
57 HPL_T_panel * PANEL;
58 #endif
59 {
60 /*
61 * Purpose
62 * =======
63 *
64 * HPL_pdpanel_free deallocates the panel resources and stores the error
65 * code returned by the panel factorization.
66 *
67 * Arguments
68 * =========
69 *
70 * PANEL (local input/output) HPL_T_panel *
71 * On entry, PANEL points to the panel data structure from
72 * which the resources should be deallocated.
73 *
74 * ---------------------------------------------------------------------
75 */
76 /* ..
77 * .. Executable Statements ..
78 */
79 if( PANEL->pmat->info == 0 ) PANEL->pmat->info = *(PANEL->DINFO);
80 #ifdef HPL_CALL_VSIPL
81 /*
82 * Release the blocks
83 */
84 (void) vsip_blockrelease_d( PANEL->L1block, VSIP_TRUE );
85 (void) vsip_blockrelease_d( PANEL->L2block, VSIP_TRUE );
86 if( PANEL->grid->nprow > 1 )
87 (void) vsip_blockrelease_d( PANEL->Ublock, VSIP_TRUE );
88 /*
89 * Destroy blocks
90 */
91 vsip_blockdestroy_d( PANEL->L1block );
92 vsip_blockdestroy_d( PANEL->L2block );
93 if( PANEL->grid->nprow > 1 )
94 vsip_blockdestroy_d( PANEL->Ublock );
95 #endif
96
97 if( PANEL->WORK ) free( PANEL->WORK );
98 if( PANEL->IWORK ) free( PANEL->IWORK );
99
100 return( MPI_SUCCESS );
101 /*
102 * End of HPL_pdpanel_free
103 */
104 }
105