UCY-parallel-fortran

所属分类:超算/并行计算
开发工具:Fortran
文件大小:0KB
下载次数:0
上传日期:2017-05-31 07:30:18
上 传 者sh-1993
说明:  塞浦路斯大学现代Fortran课程中并行编程的代码阻塞和家庭作业练习,
(Code jams and homework exercises for Parallel Programming in Modern Fortran course at the University of Cyprus,)

文件列表:
CMakeLists.txt (3944, 2017-05-31)
LICENSE (1513, 2017-05-31)
src/ (0, 2017-05-31)
src/CMakeLists.txt (95, 2017-05-31)
src/code-jams/ (0, 2017-05-31)
src/code-jams/end.f90 (4, 2017-05-31)
src/code-jams/fortran-2008-test-my-message.f90 (3479, 2017-05-31)
src/code-jams/goodbye.f90 (121, 2017-05-31)
src/code-jams/synchronous-derivative-get.f90 (3317, 2017-05-31)
src/code-jams/type-bound-procedure.f90 (702, 2017-05-31)
src/homework1-refactored/ (0, 2017-05-31)
src/homework1-refactored/CMakeLists.txt (658, 2017-05-31)
src/homework1-refactored/greeting.txt (25, 2017-05-31)
src/homework1-refactored/my-message-implementation.f90 (410, 2017-05-31)
src/homework1-refactored/my-message-interface.f90 (364, 2017-05-31)
src/homework1-refactored/run-my-message-test.sh (242, 2017-05-31)
src/homework1-refactored/test-my-message.f90 (1728, 2017-05-31)
src/homework1/ (0, 2017-05-31)
src/homework1/test-my-message.f90 (1728, 2017-05-31)
src/homework2/ (0, 2017-05-31)
src/homework2/library/ (0, 2017-05-31)
src/homework2/library/Makefile (1684, 2017-05-31)
src/homework2/library/debugging_parameters.f90 (1772, 2017-05-31)
src/homework2/library/kind_parameters.f90 (1833, 2017-05-31)
src/homework2/library/math_constants.f90 (1961, 2017-05-31)
src/homework2/library/physical_constants.f90 (1964, 2017-05-31)
src/homework2/library/random.f90 (2777, 2017-05-31)
src/homework2/procedural_fireworks/ (0, 2017-05-31)
src/homework2/procedural_fireworks/Makefile (3628, 2017-05-31)
src/homework2/procedural_fireworks/fireworks_input.txt (231, 2017-05-31)
src/homework2/procedural_fireworks/main.f90 (6195, 2017-05-31)
src/homework2/procedural_fireworks/sky_procedures_implementation.f90 (3320, 2017-05-31)
src/homework2/procedural_fireworks/sky_procedures_interface.f90 (2828, 2017-05-31)
src/homework2/procedural_fireworks/stars_procedures_implementation.f90 (4720, 2017-05-31)
src/homework2/procedural_fireworks/stars_procedures_interface.f90 (2423, 2017-05-31)
src/homework3/ (0, 2017-05-31)
src/homework3/CMakeLists.txt (51, 2017-05-31)
src/homework3/fortran2008_procedural_fireworks/ (0, 2017-05-31)
src/homework3/fortran2008_procedural_fireworks/CMakeLists.txt (660, 2017-05-31)
... ...

UCY-parallel-fortran ==================== Code jams and homework exercises for Parallel Programming in Modern Fortran course at the University of Cyprus 1. [Homework 1](https://github.com/rouson/UCY-parallel-fortran/blob/master/#homework-1) 2. [Homework 2](https://github.com/rouson/UCY-parallel-fortran/blob/master/#homework-2) 3. [Homework 3](https://github.com/rouson/UCY-parallel-fortran/blob/master/#homework-3) 4. [Homework 4](https://github.com/rouson/UCY-parallel-fortran/blob/master/#homework-4) Homework 1 ---------- In this assignment, you start writing the world's longest Hello world program with modern Fortran features: * Blocks * Deferred-lenth character variables (`character(len=:), allocatable :: foo`) * Collective subroutine: ```fortran call co_broadcast(input,source_image=1) ``` ### To Do - [ ] Write the my_message() function - [ ] Go out for frappe Homework 2 ---------- In this assignment, you will use the co_sum collective subroutine to sum integers across all images. ### To Do - [ ] Fork this repository by clicking "Fork" in the upper right corner of the browser page (don't click the number next to "Fork") - [ ] Clone your fork and install the sourcery library: ```bash git clone https:github.com//UCY-parallel-fortran cd UCY-parallel-fortran/src/homework2/library make install ``` - [ ] Complete the steps listed after the text "Assignment" in the file src/homework2/procedural_fireworks/main.f90 - [ ] With your working directory set to `src/homework2/procedural_fireworks`, build and run the application using the `make` utility: ```bash make cafrun -n 4 ./procedural_fireworks < fireworks_input.txt ``` which executes `procedural_fireworks` in 4 images and redirects the standard input to the file `fireworks_intput.txt`. - [ ] Bring your instructor a frappe to receive an A for the day. Homework 3 ---------- - [ ] Generate a pull request on your repository and merge the latest central repository into yours [central repository](https://github.com/rouson/UCY-parallel-fortran/blob/master/https://github.com/rouson/UCY-parallel-fortran). (Alternatively, you could clone the latest central repository, but you don't have write permissions on it so you won't be able to push your changes, which loses you some GitHub functionality that is only available online.) - [ ] Try building the updated/cloned repository with CMake, e.g. ```bash cd UCY-parallel-fortran- mkdir build cd build FC=caf cmake .. make ``` - [ ] The resulting build failure will point you to the new Homework 3 [main](https://github.com/rouson/UCY-parallel-fortran/blob/master/src/homework3/fortran2008_procedural_fireworks) program, which is identical to the homework 2 `main` except that the `co_sum_binary` replaces `co_sum` and the corresponding `result_image` argument has been eliminarted. - [ ] Follow the instructions below the text "Assignment" in the new [main] program to complete Homework 3. A completed assignment will cause all tests to pass when you run `ctest` after the above `make` Homework 4 ---------- - [ ] Build the course archive with CMake as usual: ```bash cd UCY-parallel-fortran mkdir build cd build FC=caf cmake .. make ``` - [ ] The build fails because it's looking for a missing file: synchronous-derivative-put.f90. Create the missing file by copying [synchronous-derivative-get.f90](https://github.com/rouson/UCY-parallel-fortran/blob/master/src/homework4/synchronous-derivative-get.f90) - [ ] Inside the new file, define an "inbox" coarray to hold incoming boundary data from neighboring images in the executing image's halo. - [ ] Replace the "gets" in the `get_halo` block with "puts" to ensure the initiation of communication as soon as the communicated data is ready. - [ ] Impose any necessary synchronizations via `sync images`. - [ ] Continue building and testing until issuing the command `ctest` reports that all tests pass.

近期下载者

相关文件


收藏者