[]

Programın yaptığı iş?(Algoritma ,c vs)

Naptığını tam çözemedim şöle çıktı verio

N Pİ
1 0
2 1
4 2
8 4
16 6
. .
. .
. .

böyle devam ediyor



# include <stdlib.h>
# include <stdio.h>
# include <math.h>
# include <time.h>

# include "mpi.h"

int main ( int argc, char *argv[] );
int prime_number ( int n, int id, int p );
void timestamp ( void );

/******************************************************************************/

int main ( int argc, char *argv[] )

/******************************************************************************/
/*
Purpose:

MAIN is the main program for PRIME_MPI.

Discussion:

This program calls a version of PRIME_NUMBER that includes
MPI calls for parallel processing.

Licensing:

This code is distributed under the GNU LGPL license.

Modified:

07 August 2009

Author:

John Burkardt
*/
{
int i;
int id;
int ierr;
int n;
int n_factor;
int n_hi;
int n_lo;
int p;
int primes;
int primes_part;
double wtime;

n_lo = 1;
n_hi = 262144;
n_factor = 2;
/*
Initialize MPI.
*/
ierr = MPI_Init ( &argc, &argv );
/*
Get the number of processes.
*/
ierr = MPI_Comm_size ( MPI_COMM_WORLD, &p );
/*
Determine this processes's rank.
*/
ierr = MPI_Comm_rank ( MPI_COMM_WORLD, &id );

if ( id == 0 )
{
timestamp ( );
printf ( "\n" );
printf ( "PRIME_MPI\n" );
printf ( " C/MPI version\n" );
printf ( "\n" );
printf ( " An MPI example program to count the number of primes.\n" );
printf ( " The number of processes is %d\n", p );
printf ( "\n" );
printf ( " N Pi Time\n" );
printf ( "\n" );
}

n = n_lo;

while ( n <= n_hi )
{
if ( id == 0 )
{
wtime = MPI_Wtime ( );
}
ierr = MPI_Bcast ( &n, 1, MPI_INT, 0, MPI_COMM_WORLD );

primes_part = prime_number ( n, id, p );

ierr = MPI_Reduce ( &primes_part, &primes, 1, MPI_INT, MPI_SUM, 0,
MPI_COMM_WORLD );

if ( id == 0 )
{
wtime = MPI_Wtime ( ) - wtime;
printf ( " %8d %8d %14f\n", n, primes, wtime );
}
n = n * n_factor;
}
/*
Terminate MPI.
*/
ierr = MPI_Finalize ( );
/*
Terminate.
*/
if ( id == 0 )
{
printf ( "\n");
printf ( "PRIME_MPI - Master process:\n");
printf ( " Normal end of execution.\n");
printf ( "\n" );
timestamp ( );
}

return 0;
}
/******************************************************************************/

int prime_number ( int n, int id, int p )

/******************************************************************************/
/*
Purpose:

PRIME_NUMBER returns the number of primes between 1 and N.

Discussion:

In order to divide the work up evenly among P processors, processor
ID starts at 2+ID and skips by P.

A naive algorithm is used.

Mathematica can return the number of primes less than or equal to N
by the command PrimePi[N].

N PRIME_NUMBER

1 0
10 4
100 25
1,000 168
10,000 1,229
100,000 9,592
1,000,000 78,498
10,000,000 664,579
100,000,000 5,761,455
1,000,000,000 50,847,534

Licensing:

This code is distributed under the GNU LGPL license.

Modified:

21 May 2009

Author:

John Burkardt

Parameters:

Input, int N, the maximum number to check.

Input, int ID, the ID of this process,
between 0 and P-1.

Input, int P, the number of processes.

Output, int PRIME_NUMBER, the number of prime numbers up to N.
*/
{
int i;
int j;
int prime;
int total;

total = 0;

for ( i = 2 + id; i <= n; i = i + p )
{
prime = 1;
for ( j = 2; j < i; j++ )
{
if ( ( i % j ) == 0 )
{
prime = 0;
break;
}
}
total = total + prime;
}
return total;
}
/******************************************************************************/

void timestamp ( void )

/******************************************************************************/
/*
Purpose:

TIMESTAMP prints the current YMDHMS date as a time stamp.

Example:

31 May 2001 09:45:54 AM

Licensing:

This code is distributed under the GNU LGPL license.

Modified:

24 September 2003

Author:

John Burkardt

Parameters:

None
*/
{
# define TIME_SIZE 40

static char time_buffer[TIME_SIZE];
const struct tm *tm;
size_t len;
time_t now;

now = time ( NULL );
tm = localtime ( &now );

len = strftime ( time_buffer, TIME_SIZE, "%d %B %Y %I:%M:%S %p", tm );

printf ( "%s\n", time_buffer );

return;
# undef TIME_SIZE
}

 
0-N arasında Pİ kadar asal sayı vardır.

N Pİ
1 0 - []
2 1 - [2]
4 2 - [2,3]
8 4 - [2,3,5,7]
16 6 - [2,3,5,7,11,13]
. .
. .
  • ocanal  (26.11.12 22:42:57) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.