The document discusses the Julia programming language. It highlights that Julia bridges the gap between computer science and computational science by allowing for both data abstraction and high performance. Julia uses multiple dispatch as its core programming paradigm, which allows functions to have different implementations depending on the types of their arguments. This enables Julia to perform efficiently on a wide range of technical computing tasks.
This slide brushes up on the concepts of class and templates in C++. It introduces the different sections of the C++ Standard Library and talks about std::pair in further details.
Gleaning Types for Literals in RDF with Application to Entity SummarizationKalpa Gunaratna
ESWC 2016 talk about how to compute types (ontology classes) for literals and add semantics to them, making them richer. Then utilize them in an entity summarization usecase.
A very short tour through the Julia community and how key features of the language interact to produce an expressive syntax that users like without sacrificing performance
This slide brushes up on the concepts of class and templates in C++. It introduces the different sections of the C++ Standard Library and talks about std::pair in further details.
Gleaning Types for Literals in RDF with Application to Entity SummarizationKalpa Gunaratna
ESWC 2016 talk about how to compute types (ontology classes) for literals and add semantics to them, making them richer. Then utilize them in an entity summarization usecase.
A very short tour through the Julia community and how key features of the language interact to produce an expressive syntax that users like without sacrificing performance
Slides for a 20 minute presentation about Julia, with a brief introduction to multiple dispatch/multimethods and how it is used for numerical linear algebra
Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/1ZW7TDL.
Richard Dallaway shows an example of what Scala looks like when using pattern matching over classes, how to encode an idea into types and use advanced features of Scala without complicating the code. Filmed at qconlondon.com.
Richard Dallaway is a partner at Underscore -- a consultancy specializing in Scala, especially the type-driven and functional aspects of Scala. He works on client projects writing software and helping teams deliver software with Scala. His focus is on the web, machine learning, and code review. He's the co-author of "Essential Slick" (Underscore), and author of the "Lift Cookbook" (O'Reilly).
Java 8 will ship with a powerful new abstraction - Lambda Expressions (aka Closures) and a completely retooled set of Collections libraries. In addition interfaces have changed through the addition of default and static methods.
The ongoing debate as to whether Java should include such language changes has resulted in many vocal opinions being espoused. Sadly few of these opinions have been backed up by practical experimentation and experience.
* Are these opinions just myths?
* What mistakes does a developer make?
* Can a ‘blue collar’ Java Developer cope with functional programming?
* Can we avoid these mistakes in future?
In London we’ve been running a series of hackdays trying out Lambda Expressions as part of the Adopt-a-JSR program and have been recording and analysing the results. This gives us unprecedented insight into what will happen in future.
Monads and Monoids: from daily java to Big Data analytics in Scala
Finally, after two decades of evolution, Java 8 made a step towards functional programming. What can Java learn from other mature functional languages? How to leverage obscure mathematical abstractions such as Monad or Monoid in practice? Usually people find it scary and difficult to understand. Oleksiy will explain these concepts in simple words to give a feeling of powerful tool applicable in many domains, from daily Java and Scala routines to Big Data analytics with Storm or Hadoop.
Prepares the students for (and is a prerequisite for) the more advanced material students will encounter in later courses. Data structures organize data Þ more efficient programs.
Like most imperative languages in the ALGOL tradition, C has facilities for structured programming and allows lexical variable scope and recursion, while a static type system prevents many unintended operations. In C, all executable code is contained within subroutines, which are called "functions" (although not in the strict sense of functional programming). Function parameters are always passed by value. Pass-by-reference is simulated in C by explicitly passing pointer values. C program source text is free-format, using the semicolon as a statement terminator and curly braces for grouping blocks of statements.
Show drafts
volume_up
Empowering the Data Analytics Ecosystem: A Laser Focus on Value
The data analytics ecosystem thrives when every component functions at its peak, unlocking the true potential of data. Here's a laser focus on key areas for an empowered ecosystem:
1. Democratize Access, Not Data:
Granular Access Controls: Provide users with self-service tools tailored to their specific needs, preventing data overload and misuse.
Data Catalogs: Implement robust data catalogs for easy discovery and understanding of available data sources.
2. Foster Collaboration with Clear Roles:
Data Mesh Architecture: Break down data silos by creating a distributed data ownership model with clear ownership and responsibilities.
Collaborative Workspaces: Utilize interactive platforms where data scientists, analysts, and domain experts can work seamlessly together.
3. Leverage Advanced Analytics Strategically:
AI-powered Automation: Automate repetitive tasks like data cleaning and feature engineering, freeing up data talent for higher-level analysis.
Right-Tool Selection: Strategically choose the most effective advanced analytics techniques (e.g., AI, ML) based on specific business problems.
4. Prioritize Data Quality with Automation:
Automated Data Validation: Implement automated data quality checks to identify and rectify errors at the source, minimizing downstream issues.
Data Lineage Tracking: Track the flow of data throughout the ecosystem, ensuring transparency and facilitating root cause analysis for errors.
5. Cultivate a Data-Driven Mindset:
Metrics-Driven Performance Management: Align KPIs and performance metrics with data-driven insights to ensure actionable decision making.
Data Storytelling Workshops: Equip stakeholders with the skills to translate complex data findings into compelling narratives that drive action.
Benefits of a Precise Ecosystem:
Sharpened Focus: Precise access and clear roles ensure everyone works with the most relevant data, maximizing efficiency.
Actionable Insights: Strategic analytics and automated quality checks lead to more reliable and actionable data insights.
Continuous Improvement: Data-driven performance management fosters a culture of learning and continuous improvement.
Sustainable Growth: Empowered by data, organizations can make informed decisions to drive sustainable growth and innovation.
By focusing on these precise actions, organizations can create an empowered data analytics ecosystem that delivers real value by driving data-driven decisions and maximizing the return on their data investment.
06-04-2024 - NYC Tech Week - Discussion on Vector Databases, Unstructured Data and AI
Round table discussion of vector databases, unstructured data, ai, big data, real-time, robots and Milvus.
A lively discussion with NJ Gen AI Meetup Lead, Prasad and Procure.FYI's Co-Found
Explore our comprehensive data analysis project presentation on predicting product ad campaign performance. Learn how data-driven insights can optimize your marketing strategies and enhance campaign effectiveness. Perfect for professionals and students looking to understand the power of data analysis in advertising. for more details visit: https://bostoninstituteofanalytics.org/data-science-and-artificial-intelligence/
Best best suvichar in gujarati english meaning of this sentence as Silk road ...
What's next in Julia
1. What’s next in Jul_
Jiahao Chen
MIT Computer Science and Artificial Intelligence Laboratory
julialang.org
Alan EdelmanJeff Bezanson Stefan Karpinski Viral B. Shah
2. What’s the big deal about Julia ?
julialang.org/benchmarks
3. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
4. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
data abstraction
performance
5. It bridges the divide between computer science
and computational science
What’s the big deal about Julia ?
data abstraction
performance
What if you didn’t have to choose between
data abstraction and performance?
6. It’s a programming language designed for technical computing
What’s the big deal about Julia ?
7. It’s a programming language designed for technical computing
What’s the big deal about Julia ?
The key ingredients
Multi-methods (multiple dispatch)
Dataflow type inference
together allow for cost-efficient data abstraction
15. methods objects
Object-oriented programming with classes
What can I do with/to a thing?
top up
pay fare
lose
buy
top up
pay fare
lose
buy
pay fare
lose
buy
class-based OO
!
classes are more
fundamental
than methods
16. Object-oriented programming with multi-methods
What can I do with/to a thing?
top up
pay fare
lose
buy
generic
function
objectsmethods
17. Object-oriented programming with multi-methods
What can I do with/to a thing?
top up
pay fare
lose
buy
generic
function
objectsmethods
multimethods
!
relationships between
objects and functions
18. Multi-methods with type hierarchy
top up
pay fare
lose
buy
generic
function
objectsmethods
rechargeable
subway
pass
single-use
subway
ticket
is a subtype of
subway
ticket
abstract object
21. The Julia codebase is compact
5,774 lines of Scheme
32,707 lines of C
59727 lines of Julia
!
+LLVM, BLAS, LAPACK, SuiteSparse, ARPACK,
Rmath, GMP, MPFR, FFTW,…
22. Data types as a lattice
Dana Scott, Data types as lattices, SIAM J. Comput. 5: 522-87. 1976
Real
Number
FloatingPoint Rational
Complex
Float64 BigFloat…
…
Integer
is a parameter of
is a subtype of
Signed BigInt
Any
Int64…
…
23. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
24. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
25. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
26. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
no method here
try supertype
super(Int64) = Signed
27. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
no method here
try supertype
super(Int64) = Signed
no method here either
super(Signed) = Integer
28. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
no method here
try supertype
super(Int64) = Signed
no method here either
super(Signed) = Integer
found a method
29. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
30. Signed
Multiple dispatch with type lattice traversal
Real
Number
FloatingPoint Rational
Float64 BigFloat…
Integer
is a parameter of
is a subtype of
BigInt
Any
Int64…
…
36. Type lattice of arrays
DenseArray{T, N}
AbstractArray{T, N}
Array{T, N}
…
is a subtype of
Any
Array{T,1}===Vector{T}
Array{T,2}===Matrix{T}
A single parametric type defines many types
of matrices
Matrix{Float64}, Matrix{Int64},
Matrix{BigFloat}, Matrix{Complex128},
Matrix{Rational}, Matrix{Quaternion{Float64}},…
37. Type lattice of arrays
DenseArray{T, N}
AbstractArray{T, N}
Array{T, N}
…
is a subtype of
Any
Array{T,1}===Vector{T}
Array{T,2}===Matrix{T}
A single parametric type defines many types
of matrices
Matrix{Float64}, Matrix{Int64},
Matrix{BigFloat}, Matrix{Complex128},
Matrix{Rational}, Matrix{Quaternion{Float64}},…
38. Type lattice of arrays
DenseArray{T, N}
AbstractArray{T, N}
Array{T, N}
…
is a subtype of
Any
Array{T,1}===Vector{T}
Array{T,2}===Matrix{T}
rotation matrices
structured matrices
distributed arrays
A single parametric type defines many types
of matrices
Matrix{Float64}, Matrix{Int64},
Matrix{BigFloat}, Matrix{Complex128},
Matrix{Rational}, Matrix{Quaternion{Float64}},…
39. Multi-methods for linear algebra
What can I do with/to a thing?
find eigenvalues and eigenvectors
find singular values
find singular values and vectors
find eigenvalues
generic
function
objectsmethods
general matrix
symmetric tridiagonal matrix
bidiagonal matrix
Methods can take advantage of special matrix structures
eigvals
eigfact
svdvals
svdfact
Matrix
SymTridiagonal
Bidiagonal
41. So how does this help us with linear algebra?
Multi-method dispatch on special matrix types
42. So how does this help us with linear algebra?
Multi-method dispatch on special matrix types
43. So how does this help us with linear algebra?
Multi-method dispatch on special matrix types
stev!{T<:BlasFloat} calls sgestv
dgestv
cgestv
zgestv
and handles workspace
memory allocation
44. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings
45. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings textbook algorithm
46. So how does this help us with linear algebra?
Multi-method dispatch with generic fallbacks
Matrix operations on general rings
48. Iterative algorithms as iterators
for item in iterable
#body
end
!
#is equivalent to
!
state = start(iterable)
while !done(iterable, state)
item, state = next(iterable, state)
# body
end
53. immutable cg_hs #iterative solver
K :: KrylovSpace #wraps A, v0, k
t :: Terminator #termination criteria
end
immutable cg_hs_state
r :: Vector #residual
p :: Vector #search direction
rnormsq :: Float64 #Squared norm of previous residual
iter :: Int #iteration count
end
start(a::cg_hs) = cg_hs_state(a.K.v0,
zeros(size(a.K.v0,1)), Inf, 0)
function next(a::cg_hs, s::cg_hs_state)
rnormsq = dot(s.r, s.r)
p = s.r + (rnormsq/s.rnormsq)*s.p
Ap = a.K.A*p
α = rnormsq / dot(p, Ap)
α*p, cg_hs_state(s.r-α*Ap, p, rnormsq, s.iter+1)
end
done(a::cg_hs, s::cg_hs_state) = done(a.t, s)
!
K = method(KrylovSpace(A, b, k), Terminator())
x += reduce(+, K) # for dx in K; x += dx; end
Hestenes-Stiefel CG
54. immutable cg_hs #iterative solver
K :: KrylovSpace #wraps A, v0, k
t :: Terminator #termination criteria
end
immutable cg_hs_state
r :: Vector #residual
p :: Vector #search direction
rnormsq :: Float64 #Squared norm of previous residual
iter :: Int #iteration count
end
start(a::cg_hs) = cg_hs_state(a.K.v0,
zeros(size(a.K.v0,1)), Inf, 0)
function next(a::cg_hs, s::cg_hs_state)
rnormsq = dot(s.r, s.r)
p = s.r + (rnormsq/s.rnormsq)*s.p
Ap = a.K.A*p
α = rnormsq / dot(p, Ap)
α*p, cg_hs_state(s.r-α*Ap, p, rnormsq, s.iter+1)
end
done(a::cg_hs, s::cg_hs_state) = done(a.t, s)
!
K = method(KrylovSpace(A, b, k), Terminator())
x += reduce(+, K) # for dx in K; x += dx; end
Hestenes-Stiefel CG
Abstracts out termination check and solution update steps
61. JuMP: writing simple DSLs in Julia
Iain Dunning Miles Lubin
MIT
Operations Research
62. Andreas N. Jensen
U. Copenhagen
Economics
Alan EdelmanJeff Bezanson Stefan Karpinski Viral B. Shah
Carlo Baldassi
Poly. Torino
Neuroscience
Tim E. Holy
WUSTL
Anatomy
Douglas M. Bates
Wisconsin-Madison
Statistics
Steven G. Johnson
MIT
Mathematics