I've come across the notion of solving a primal problem and solving the dual in the context of maximum-margin classifiers and SVM. I've looked on the web for some postings that would describe this in more broader terms but I got a bunch of very specific usages that all appear to be unrelated except for the terminology. From what I can tell, there is no one single procedure for taking a primal and converting it to a dual. Is this primal/dual dichotomy a casual terminology that can be applied in multiple diverse situations or is it something more concrete? Why is the one called 'primal' and the other 'dual'? What I'm looking for here is a broad understanding of the general concept. This sort of reminds me of the reduction proofs for NP completeness in theory of computation where reducing a problem to another problem is a broadly applicable procedure for such a proof but always take a different form depending on the problems used in the reduction.