News Course Articles

Assignment #1


Due Date: Next Friday 12noon.


Write a multi-thread program that generates prime numbers starting from 2. You need to submit 1) source code (60%), 2) executables (either Java class files or Window binaries) (20%), and 3) one pager to explain your algorithms and performance comparisons (20%).


A number is prime if it is divisible by 1 and the number itself and no other number. A prime number can be tested by a method called sieve as illustrated below:
long limit = (long)Math(2,20);
public static boolean isPrime (long num ) {
    boolean prime = true;
    for (long i = 2; i <= limit; i++ ) {
      if (num % i == 0 ) {
        prime = false;
    return prime;


Compare timing performance of the serial version, single threaded version and multi-threaded version. Please note that when you measure the performance of the code, you should not use the shell timing command such as time under UNIX or Linux. Instead, you should embed the timing statements in your code. In Java, you can do something like:


long ct1 = System.currentTimeMillis();

you code

long ct2 = System.currentTimeMillis();

System.out.println(the running time for your code is +(ct2-ct1));