-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
82 lines (51 loc) · 1.88 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
To-Do List
==========
hodge-podge.c
-------------
- Improve error checking and handling
- Improve command-line argument syntax, parsing, and sanity-checking
- Consider building a Cython front end
- Let user provide initial cell states
- Detect when infection ceases -- i.e., when all cells turn healthy (state 0)
- Write more metadata to HDF5 files:
- SHA checksum of initial cell states
- % healthy, infected, and ill at each step
- histogram of cell states at each step
- some measure of complexity of cell states
- in addition to (or instead of) a neighborhood type number, store the name
(if any) and a simple pictorial representation -- e.g.,
von Neumann
010
111
010
- Cell states are represented as 16-bit unsigned integers. Make this more
flexible. At minimum, implement both 8-bit and 16-bit unsigned integer data
types. Also strongly consider 1-bit
- Halo depth is 2. Make this more flexible
- Consider adding more neighborhood types
- Make the program more general so it can run automata other than the hodge
podge machine
- Consider implementing triangular and hexagonal lattices
- Consider implementing 3D automata
- Consider using OpenMP
- Consider running on GPU using CUDA C, OpenACC, or OpenCL
- Make MPI optional?
- Consider implementing alternative output -- e.g., PNG files
- Consider using parallel HDF5 so that all MPI ranks can write to the same file
Testing
-------
- Create a test suite
- Ensure 100% code coverage
- Use a performance profiler such as Valgrind to look for hot spots
Documentation
-------------
- Explain how to get the software up and running on a multicore computer using
mpirun
- Explain how to get the software up and running on Amazon Web Services
- Consider making an instructional video
Gallery
-------
- Offer a gallery of images and videos on the web
Other
-----
- Write a job-script generator in Python