A great example of how to go from the design drawing to the lofting table, to a holding rig to the strong and accurate boat stem in 24 hours. Great explanation!
Laminated hardwood boat stem
find similar posts:
boat stem,
lofting,
sailing,
Titebond glue,
wooden sailboat
0
comments
Strip-planking and fairing wooden sailboat
find similar posts:
dinghy,
fairing,
sailing,
strip-planking,
wooden sailboat
0
comments
Half-hull mahogany model
find similar posts:
dinghy,
DIY,
half-hull,
sailing,
wooden sailboat
0
comments
As an Amazon Associate I earn from qualifying purchases.
CUDA GPU Concurrent (parallel) Programming
C, C++, and Python 3 code running asynchronously using
Semaphore, for all intents and purposes, is an atomic variable that has more than one thread requiring it, which means that a predefined number of threads can use the semaphore to enter a critical section of code.
- threads
- queues
- other concurrent programming techniques
Relevance
- CUDA
- OpenCL
- Metal
- OpenAcc
- PyCUDA
- jCuda
Hardware:
- AMD
- Apple
- FPGA
- multi-core CPUs
Pitfalls of Concurrent Programming
- race conditions
- the expected order of thread operations is not followed
- resource contention
- two or more threads attempt to modify the same memory
- deadlock
- one or more processes are blocked by waiting for a resource
- live locks
- two or more processes are stuck in a loop, but cannot finish while waiting for resources
- resource over-utilization
- too few or too many threads, context switching
- memory required is too large
- memory changes too often
- resource under-utilization
- sitting idle
Semaphore, for all intents and purposes, is an atomic variable that has more than one thread requiring it, which means that a predefined number of threads can use the semaphore to enter a critical section of code.
A lock is the more restrictive parent asynchronous mechanism for a single thread to enter a critical section of code. Thus a semaphore is a more relaxed form of lock.
Concurrent Programming Algorithms
- Dining Philosophers
- multiple processes require the same resources to complete their jobs
- Producer-Consumer
- consumers need to read the data
- in order
- no duplication
- Producers add data in order it needs to be processed
- Sleeping Barber
- customers are waiting
- single barber
- if the barber is sleeping customer should wake him
- If there is no space in the queue, customers are not added
- Data and Code Synchronization
References
Subscribe to:
Posts (Atom)
apt quotation..
“A man should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.” by Robert A. Heinlein (author, aeronautical engineer, and naval officer)