Courses

COMP1400

Raptor is used by COMP1400.  It is available on all the machines in computer science labs. Also can be used remotely using NoMachine Client.

Students can download the tool on their machines(Raptor).

RAPTOR is a flowchart-based programming environment, designed specifically to help students visualize their algorithms and avoid syntactic baggage. RAPTOR programs are created visually and executed visually by tracing the execution through the flowchart. Required syntax is kept to a minimum. Students prefer using flowcharts to express their algorithms and are more successful in creating algorithms using RAPTOR than using a traditional language or writing flowcharts without Raptor.

How to access Delta and using NoMachine Client

image.png

RAPTOR Avalonia Edition runs on MAC and Linux, More information is available on the landing page of the RAPTOR website. 

COMP 3150

COMP 3670/4670/8677

COMP 2057 Prof. David Mayo

Before connecting to the server, please ensure that you have access to Computer Science resources.

Please visit 

https://auth.cs.uwindsor.ca  and synchronise your password.

Please use VPN to connect to campus, and also use VPN on the eduroam wifi. 

The following resource is dedicated to Prof David Mayo's class.

Server:  electron.cs.uwindsor.ca

Protocol to be used: SFTP ( Secure File Transfer Protocol)

This server only supports the secure FTP protocol. Please do not use FTP or SSH. This server will not provide you with a login shell even if the password is correct.

A screenshot of Filezilla on Mac 

image.png

image.png

Check that I am logged on, you can see my remote site files ( I don't have any HTML files)

image.png

Command Line: sftp sanjay@electron.cs.uwindsor.ca

image.png

Additional information

https://help.cs.uwindsor.ca/books/cs-help/page/filezilla


COMP 3400

To run nvhpc on Delta 

export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/25.11/compilers/bin:$PATH
export PATH=/opt/nvidia/hpc_sdk/Linux_x86_64/24.3/comm_libs/mpi/bin:$PATH

Compile your code 

Thanks to Prof. Paul Preney for the test code  vecadd.cpp

// This program is very simple. Set size in main to be a large number if
// needed.
// vecadd.cpp

#include <cstddef>
#include <iostream>
#include <vector>
#include <numeric> // For iota
#include <algorithm> // For transform
#include <execution> // For parallel execution policies

void check(std::ostream& os, auto const& value, auto const& should_be_value)
{
  if (value == should_be_value)
    os << "OKAY";
  else
    os << "NOT_OKAY";
}

int main()
{
  using namespace std;

  size_t const size{ 1'000'000ULL};

  vector<int> a(size);
  vector<int> b(size);
  vector<int> result(size);

  iota(a.begin(), a.end(), 0); // a = {0, 1, 2, ...}
  iota(b.begin(), b.end(), size); // b = {size, size+1, ...}

  transform(execution::par_unseq,
    a.begin(), a.end(),
    b.begin(),
    result.begin(),
    [](int x, int y) { return x + y; }
  );

  // Verify a few elements (optional)
  cout << "result[0]: " << result[0] << ' '; check(cout,result[0],size); cout << '\n';
  cout << "result[1]: " << result[1] << ' '; check(cout,result[1],size+2); cout << '\n';
  cout << "result[size-1]: " << result[size-1] << ' '; check(cout,result[size-1],size-1+size*2-1); cout << '\n';
}

MakeFile

Makefile
CXXFLAGS=-O3

NVHPC_CXX=nvc++
NVHPC_CXXFLAGS=$(CXXFLAGS) --c++20 -stdpar=gpu
NVHPC_LDFLAGS=$(LDFLAGS)

GCC_CXX=g++
GCC_CXXFLAGS=$(CXXFLAGS) -std=c++20
GCC_LDFLAGS=$(LDFLAGS) -ltbb

all: vecadd-nvhpc.exe vecadd-gcc.exe

clean:
	rm *.exe

run: vecadd-gcc.exe vecadd-nvhpc.exe
	echo "Running vecadd-gcc.exe..."
	bash -c 'time ./vecadd-gcc.exe'
	echo -e "\n\n\n"
	echo "Running vecadd-nvhpc.exe..."
	bash -c 'time ./vecadd-nvhpc.exe'

%-nvhpc.exe : %.cpp
	$(NVHPC_CXX) $(NVHPC_CXXFLAGS) -o $@ $< $(NVHPC_LDFLAGS)

%-gcc.exe : %.cpp
	$(GCC_CXX) $(GCC_CXXFLAGS) -o $@ $< $(GCC_LDFLAGS)

image.png