Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F102273785
algorithm_2_tile.c
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Feb 19, 00:01
Size
1 KB
Mime Type
text/x-c
Expires
Fri, Feb 21, 00:01 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
24321688
Attached To
R10834 Project_multiproc
algorithm_2_tile.c
View Options
/*
============================================================================
Filename : algorithm.c
Author : Your names go here
SCIPER : Your SCIPER numbers
============================================================================
*/
#include <math.h>
#define INPUT(I,J) input[(I)*length+(J)]
#define OUTPUT(I,J) output[(I)*length+(J)]
#define CACHE_SIZE 8
#define COORD(I,J,K) (I) = K / length; (J) = (K) - (I) * length;
void
simulate
(
double
*
input
,
double
*
output
,
int
threads
,
int
length
,
int
iterations
)
{
double
*
temp
;
omp_set_num_threads
(
threads
);
for
(
int
n
=
0
;
n
<
iterations
;
n
++
)
{
#pragma omp parallel for collapse(2)
for
(
int
i
=
1
;
i
<
length
-
1
;
i
+=
2
)
{
for
(
int
j
=
1
;
j
<
length
-
1
;
j
+=
2
)
{
if
((
i
+
1
<
length
-
1
)
&&
(
j
+
1
<
length
-
1
))
{
OUTPUT
(
i
,
j
)
=
(
INPUT
(
i
-
1
,
j
-
1
)
+
INPUT
(
i
-
1
,
j
)
+
INPUT
(
i
-
1
,
j
+
1
)
+
INPUT
(
i
,
j
-
1
)
+
INPUT
(
i
,
j
)
+
INPUT
(
i
,
j
+
1
)
+
INPUT
(
i
+
1
,
j
-
1
)
+
INPUT
(
i
+
1
,
j
)
+
INPUT
(
i
+
1
,
j
+
1
))
/
9
;
OUTPUT
(
i
+
1
,
j
)
=
(
INPUT
(
i
,
j
-
1
)
+
INPUT
(
i
,
j
)
+
INPUT
(
i
,
j
+
1
)
+
INPUT
(
i
+
1
,
j
-
1
)
+
INPUT
(
i
+
1
,
j
)
+
INPUT
(
i
+
1
,
j
+
1
)
+
INPUT
(
i
+
2
,
j
-
1
)
+
INPUT
(
i
+
2
,
j
)
+
INPUT
(
i
+
2
,
j
+
1
))
/
9
;
OUTPUT
(
i
,
j
+
1
)
=
(
INPUT
(
i
-
1
,
j
)
+
INPUT
(
i
-
1
,
j
+
1
)
+
INPUT
(
i
-
1
,
j
+
2
)
+
INPUT
(
i
,
j
)
+
INPUT
(
i
,
j
+
1
)
+
INPUT
(
i
,
j
+
2
)
+
INPUT
(
i
+
1
,
j
)
+
INPUT
(
i
+
1
,
j
+
1
)
+
INPUT
(
i
+
1
,
j
+
2
))
/
9
;
OUTPUT
(
i
+
1
,
j
+
1
)
=
(
INPUT
(
i
,
j
)
+
INPUT
(
i
,
j
+
1
)
+
INPUT
(
i
,
j
+
2
)
+
INPUT
(
i
+
1
,
j
)
+
INPUT
(
i
+
1
,
j
+
1
)
+
INPUT
(
i
+
1
,
j
+
2
)
+
INPUT
(
i
+
2
,
j
)
+
INPUT
(
i
+
2
,
j
+
1
)
+
INPUT
(
i
+
2
,
j
+
2
))
/
9
;
}
else
{
OUTPUT
(
i
,
j
)
=
(
INPUT
(
i
-
1
,
j
-
1
)
+
INPUT
(
i
-
1
,
j
)
+
INPUT
(
i
-
1
,
j
+
1
)
+
INPUT
(
i
,
j
-
1
)
+
INPUT
(
i
,
j
)
+
INPUT
(
i
,
j
+
1
)
+
INPUT
(
i
+
1
,
j
-
1
)
+
INPUT
(
i
+
1
,
j
)
+
INPUT
(
i
+
1
,
j
+
1
))
/
9
;
}
}
}
temp
=
input
;
input
=
output
;
output
=
temp
;
}
}
Event Timeline
Log In to Comment