Comments (4)
Above proposal is a joint work by @msoeken, @alexva, @thomashaener.
@sam-jaques, @fvirdia, @cryptosidh, this proposal might be helpful to mitigate the issues with quantum parallelism you have encountered while working on quantum cryptography resource estimates in Q#.
from qsharp-language.
Hi @vadym-kl. Thanks for filing this. This suggestion contains a couple of different requests; would you mind splitting this into individual issues that can be processed separately?
from qsharp-language.
@bettinaheim I beleive there is a conceptual discussion about Q parallel needed first and this issue could be a good place to have it. Once there is a common conceptual ground, perhaps one can create issues for 'parallel for', 'parallel sections', 'section' and 'fanout' discussing further details and referring to this issues for common high level picture.
from qsharp-language.
This would be great, generally. It seems like most of the issues occur in loops of various sorts, so circuit designers probably know what to tell the compiler for each loop (whether to be parallel or not). Would each "Section" use the width- or depth-minimizing compiler? It seems like the width-minimizing compiler would be the better choice, leaving the programmer to manually create the parallelism, but maybe it could be given as a parameter?
A more ambitious feature would be to allow access to the current number of allocated qubits, so the compilation/running of a circuit can dynamically decide whether it should be parallel or not. Having the change suggested in this issue would probably make this extra feature easier to implement and use at some future date.
from qsharp-language.
Related Issues (20)
- Allow qubit in `if` expression, meaning "use this as a control for all operations in the block"
- Add the concept of an rvalue HOT 1
- Add support for BigInt ranges
- Consider changing call precedence to be equal to or greater than `!`, `::`, and `[` `]` HOT 1
- Floating-point numbers with too long decimal places will lose precision HOT 1
- `body auto` should infer body block if any other block is specified HOT 3
- Make custom inline arithmetic operators possible HOT 4
- Allow function overloading HOT 3
- Treat Range as a built-in UDT HOT 3
- Support equality checking on arbitrary types HOT 4
- Support for covariant arrays HOT 6
- Bounded polymorphism HOT 7
- Docs branch is not being updated HOT 3
- Process for adding or removing pages in language docs is unclear HOT 2
- Generate a single PDF of language specification HOT 3
- This repo is missing important files
- Precedence of lambdas is unclear in the spec
- How to know what the meaning of '_' in the parameters?
- copy-and-update expression is very cryptic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qsharp-language.